aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Sapiro <mark@msapiro.net>2015-02-10 15:34:07 -0800
committerMark Sapiro <mark@msapiro.net>2015-02-10 15:34:07 -0800
commitd29b465be2c1aa6e1083f13b579a59697a93fb30 (patch)
treedca67e488f69dbd61e0c0a933e724e98d05703d9
parentfeb0c79d073433101d19cab305d8427d855cd6b6 (diff)
downloadmailman2-d29b465be2c1aa6e1083f13b579a59697a93fb30.tar.gz
mailman2-d29b465be2c1aa6e1083f13b579a59697a93fb30.tar.xz
mailman2-d29b465be2c1aa6e1083f13b579a59697a93fb30.zip
Updates to Russian i18n by Danil Smirnov.
Removed some 'prior translator' files from Russian templates directory.
-rwxr-xr-xNEWS5
-rwxr-xr-xmessages/ru/LC_MESSAGES/mailman.po138
-rw-r--r--templates/ru/Makefile50
-rw-r--r--templates/ru/adminaddrchgack.txt5
-rw-r--r--templates/ru/admindbdetails.html3
-rw-r--r--templates/ru/s2s.py66
-rw-r--r--templates/ru/status44
7 files changed, 103 insertions, 208 deletions
diff --git a/NEWS b/NEWS
index 3b5d8edb..6f16998a 100755
--- a/NEWS
+++ b/NEWS
@@ -60,7 +60,7 @@ Here is a history of user visible changes to Mailman.
archive to emphasize that even if you got to the message from a
subject, date or author index, previous and next are still by thread.
-2.1.19rc3 (07-Feb-2015)
+2.1.19 (xx-xxx-2015)
New Features
@@ -143,7 +143,8 @@ Here is a history of user visible changes to Mailman.
the keys) of dictionary attributes and the elements of list and tuple
attributes.
- - The Russian message catalog has been updated by Danil Smirnov.
+ - The Russian message catalog and templates have been further updated by
+ Danil Smirnov.
- The Romanian message catalog has been updated. (LP: #1415489)
diff --git a/messages/ru/LC_MESSAGES/mailman.po b/messages/ru/LC_MESSAGES/mailman.po
index 0fd25cfb..b12622b2 100755
--- a/messages/ru/LC_MESSAGES/mailman.po
+++ b/messages/ru/LC_MESSAGES/mailman.po
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: mailman v2.1\n"
"POT-Creation-Date: Tue Feb 3 20:49:32 2015\n"
-"PO-Revision-Date: 2015-02-04 14:16+0300\n"
+"PO-Revision-Date: 2015-02-10 14:56+0300\n"
"Last-Translator: Danil Smirnov <danil@smirnov.la>\n"
"Language-Team: Russian <danil@smirnov.la>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Virtaal 0.7.1\n"
#: Mailman/Archiver/HyperArch.py:123
@@ -42,14 +42,12 @@ msgid " at "
msgstr " на "
#: Mailman/Archiver/HyperArch.py:512
-#, fuzzy
msgid "Previous message (by thread):"
-msgstr "Предыдущее сообщение:"
+msgstr "Предыдущее сообщение (в дискуссии):"
#: Mailman/Archiver/HyperArch.py:534
-#, fuzzy
msgid "Next message (by thread):"
-msgstr "Следующее сообщение:"
+msgstr "Следующее сообщение (в дискуссии):"
#: Mailman/Archiver/HyperArch.py:707 Mailman/Archiver/HyperArch.py:743
msgid "thread"
@@ -1397,7 +1395,6 @@ msgid "Confirmation string was empty."
msgstr "Строка подтверждения отсутствует."
#: Mailman/Cgi/confirm.py:98
-#, fuzzy
msgid ""
"<b>Invalid confirmation string:</b>\n"
" %(safecookie)s.\n"
@@ -1414,9 +1411,12 @@ msgstr ""
"\n"
" <p>Имейте, пожалуйста, в виду, что строка подтверждения может быть "
"использована\n"
-" только в течении %(days)s дней после запроса на подписку. Если ваш "
-"запрос был\n"
-" отправлен раньше, пожалуйста, попробуйте повторно запросить подписку.\n"
+" только в течении %(days)s дней после запроса на подписку. Она также "
+"становится\n"
+" недействительной после обработки тем или иным образом. Если Ваша "
+"строка\n"
+" подтверждения устарела, пожалуйста, попробуйте повторно запросить "
+"подписку.\n"
" В противном случае попробуйте <a href=\"%(confirmurl)s\">ввести</a> "
"строку подтверждения\n"
" еще раз."
@@ -2410,27 +2410,26 @@ msgid "No such member: %(safeuser)s."
msgstr "Такого пользователя не существует: %(safeuser)s."
#: Mailman/Cgi/options.py:180
-#, fuzzy
msgid "If you are a list member, a confirmation email has been sent."
-msgstr "Сообщение с кодом подтверждения отправлено."
+msgstr ""
+"Если Вы подписчик списка рассылки, Вам было отправлено сообщение с кодом "
+"подтверждения."
#: Mailman/Cgi/options.py:181
-#, fuzzy
msgid ""
"If you are a list member, your unsubscription request has been\n"
" forwarded to the list administrator for approval."
msgstr ""
-"Ваш запрос на удаление подписки был переправлен модератору списка рассылки "
-"для обработки."
+"Если Вы подписчик списка рассылки, Ваш запрос на удаление подписки\n"
+"был отправлен модератору для обработки."
#: Mailman/Cgi/options.py:220
-#, fuzzy
msgid ""
"If you are a list member,\n"
" your password has been emailed to you."
msgstr ""
"Если Вы подписчик списка рассылки,\n"
-" Вам было отправлено сообщение с Вашим паролем."
+" Вам было отправлено сообщение с Вашим паролем."
#: Mailman/Cgi/options.py:263
msgid "Authentication failed."
@@ -3112,9 +3111,10 @@ msgid ""
" supplied by a mailback confirmation notice.\n"
msgstr ""
"\n"
-" confirm <код-подтверждения>\n"
-" Подтвердить действие. Код подтверждения необходим и должен\n"
-" быть отправлен вам со специальным извещением.\n"
+" confirm <строка-подтверждения>\n"
+" Подтвердить действие. Строка подтверждения является обязательным "
+"параметром\n"
+" и должна была быть отправлена Вам специальным сообщением.\n"
#: Mailman/Commands/cmd_confirm.py:41 Mailman/Commands/cmd_lists.py:40
#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
@@ -3123,17 +3123,17 @@ msgid "Usage:"
msgstr "Запуск:"
#: Mailman/Commands/cmd_confirm.py:50
-#, fuzzy
msgid ""
"Invalid confirmation string. Note that confirmation strings expire\n"
"approximately %(days)s days after the initial request. They also expire if\n"
"the request has already been handled in some way. If your confirmation has\n"
"expired, please try to re-submit your original request or message."
msgstr ""
-"Некорректный код подтверждения. Срок действия кода подтверждения\n"
+"Некорректная строка подтверждения. Срок действия строки подтверждения\n"
"истекает примерно через %(days)s дн. после отправки запроса на\n"
-"подписку. Если срок действия вашего кода истек, попробуйте отправить\n"
-"запрос заново."
+"подписку. Строка подтверждения также становится недействительной, если\n"
+"она уже была обработана тем или иным образом. Если срок действия\n"
+"Вашей строки подтверждения истек, попробуйте отправить запрос заново."
#: Mailman/Commands/cmd_confirm.py:56
msgid "Your request has been forwarded to the list moderator for approval."
@@ -6604,9 +6604,10 @@ msgid ""
"List of addresses (or regexps) whose subscriptions do not\n"
" require approval."
msgstr ""
+"Список адресов (или регулярных выражений), подписка которых\n"
+"не требует одобрения."
#: Mailman/Gui/Privacy.py:120
-#, fuzzy
msgid ""
"When subscription requires approval, addresses in this list\n"
" are allowed to subscribe without administrator approval. Add\n"
@@ -6614,17 +6615,18 @@ msgid ""
"character\n"
" to designate a (case insensitive) regular expression match."
msgstr ""
-"Перечисленным здесь адресам подписка на данный список рассылки\n"
-"запрещена, от модератора предпринимать какие-либо действия не\n"
-"потребуется. Адреса должны начинаться с новой строки (по одному\n"
-"адресу в строке), если адрес будет начинаться с ^, это будет\n"
-"означать начало регулярного выражения."
+"Если подписка требует одобрения, то адреса из этого списка\n"
+"будут подписаны без одобрения модератора. Указываете по одному\n"
+"адресу в каждой строке. Если адрес начинается с символа \"^\", то он будет\n"
+"проинтерпретирован как регистронезависимое регулярное выражение."
#: Mailman/Gui/Privacy.py:125
msgid ""
"You may also use the @listname notation to designate the\n"
" members of another list in this installation."
msgstr ""
+"Вы можете также использовать формат @listname\n"
+"чтобы задать подписчиков другого списка рассылки этого сервера."
#: Mailman/Gui/Privacy.py:129
msgid ""
@@ -7027,6 +7029,11 @@ msgid ""
" separate text/plain MIME part preceding the original message\n"
" part in the wrapped message."
msgstr ""
+"Если для параметра dmarc_moderation_action выбрано значение \"Вложить "
+"сообщение\",\n"
+"и здесь задан какой-либо текст, то он будет добавлен в виде отдельной MIME-"
+"секции\n"
+"формата text/plain перед началом оригинального сообщения."
#: Mailman/Gui/Privacy.py:314
msgid ""
@@ -7041,6 +7048,13 @@ msgid ""
"if\n"
" none of the other parts are applicable."
msgstr ""
+"Оригинальное сообщение будет вложено в сообщение типа multipart/mixed,\n"
+"состоящее из четырех секций: секции text/plain, содержащей msg_header,\n"
+"секции text/plain, содержащей dmarc_wrapped_message_text, секции\n"
+"message/rfc822, содержащей исходное сообщение и секции text/plain,\n"
+"содержащей msg_footer, либо же это будет только секция message/rfc822,\n"
+"содержащая исходное сообщение, если ни один из перечисленных параметров\n"
+"не задан."
#: Mailman/Gui/Privacy.py:323
msgid ""
@@ -7048,6 +7062,9 @@ msgid ""
" considered equivalent when checking if a post is from a list\n"
" member."
msgstr ""
+"\"Двумерный\" список доменов email-адресов, которые будут считаться\n"
+"эквивалентными при проверке того, является ли отправитель сообщения\n"
+"подписчиком списка рассылки."
#: Mailman/Gui/Privacy.py:327
msgid ""
@@ -7077,6 +7094,29 @@ msgid ""
" will apply to the post, but other options such as 'ack' or\n"
" 'not&nbsp;metoo' will not."
msgstr ""
+"Если два адреса отправителя с одинаковой частью до \"@\" и разными доменами\n"
+"должны считаться эквивалентными при проверке того, является ли отправитель\n"
+"сообщения подписчиком списка рассылки, то это можно задать здесь. Формат\n"
+"списка представляет собой группы доменов, разделенные точкой с запятой,\n"
+"домены внутри которых перечислены через запятую. Пробелы игнорируются.\n"
+"<p>Например:<pre>\n"
+"example.com,mail.example.com;mac.com,me.com,icloud.com\n"
+"</pre>\n"
+"<p>В этом примере, если user@example.com является подписчиком, то сообщения\n"
+"с адреса user@mail.example.com будут рассматриваться, как если бы они были\n"
+"с адреса user@example.com при проверке того, является ли адрес подписчиком\n"
+"или в случае модерации; а также если user@me.com является подписчиком "
+"списка\n"
+"рассылки, то сообщения с адресов user@mac.com и user@icloud.com будут\n"
+"рассматриваться как сообщения с адреса user@me.com.\n"
+"<p>Учтите, что адрес отправителя сначала проверяется на то,\n"
+"является ли он подписчиком списка рассылки, и только в случае "
+"отрицательного\n"
+"результата производятся проверки эквивалентных доменов.\n"
+"<p>Также учтите, что настройка эквивалентных доменов повлияет на модерацию\n"
+"сообщений с эквивалентных доменов, но не на другие опции подписки - такие "
+"как\n"
+"\"Отправлять подтверждения\" или \"Не отправлять копии своих сообщений\"."
#: Mailman/Gui/Privacy.py:349
msgid "Non-member filters"
@@ -8338,7 +8378,6 @@ msgid "Content filtered message notification"
msgstr "Уведомление о фильтрации содержимого сообщения"
#: Mailman/Handlers/Moderate.py:170
-#, fuzzy
msgid ""
"Your message has been rejected, probably because you are not subscribed to "
"the\n"
@@ -8348,10 +8387,11 @@ msgid ""
"the\n"
"mailing list owner at %(listowner)s."
msgstr ""
-"Вам не резрешено отправлять сообщения в этот список рассылки, и ваше "
-"сообщение\n"
-"было автоматически отклонено. Если вы считаете это ошибкой, обратитесь к\n"
-"администратору списка рассылки по адресу %(listowner)s."
+"Ваше сообщение было отклонено, вероятно потому что Вы не подписаны на этот "
+"список\n"
+"рассылки и его правила запрещают отправку подобных сообщений. Если Вы "
+"считаете это\n"
+"ошибкой, обратитесь к администратору списка рассылки по адресу %(listowner)s."
#: Mailman/Handlers/Moderate.py:187
msgid "Auto-discard notification"
@@ -8678,9 +8718,8 @@ msgid "%(realname)s unsubscribe notification"
msgstr "уведомление об удалении подписки на список %(realname)s"
#: Mailman/MailList.py:1226
-#, fuzzy
msgid "%(realname)s address change notification"
-msgstr "уведомление об удалении подписки на список %(realname)s"
+msgstr "уведомление об изменении адреса подписчика %(realname)s"
#: Mailman/MailList.py:1291
msgid "subscriptions to %(name)s require administrator approval"
@@ -11077,7 +11116,6 @@ msgid "Return the generated output."
msgstr "Возвратить сгенерированный вывод."
#: bin/newlist:20
-#, fuzzy
msgid ""
"Create a new, unpopulated mailing list.\n"
"\n"
@@ -11176,8 +11214,8 @@ msgid ""
msgstr ""
"Создать новый пустой список рассылки.\n"
"\n"
-"Запуск:\n"
-" %(PROGRAM)s [параметры] [имя_списка [адрес_администратора [пароль]]]\n"
+"Запуск: %(PROGRAM)s [параметры] [имя_списка_рассылки [адрес_администратора "
+"[пароль]]]\n"
"\n"
"Параметры:\n"
"\n"
@@ -11196,9 +11234,19 @@ msgstr ""
"\n"
" -q/--quiet\n"
" Обычно администратор списка рассылки уведомляется о его создании\n"
-" по электронной почте (после подтверждения). Этот параметр отменяет "
+" по электронной почте (после запроса адреса). Этот параметр отменяет "
"запрос\n"
-" подтверждения и отправку уведомления.\n"
+" адреса и отправку уведомления.\n"
+"\n"
+" -a/--automate\n"
+" Этот параметр отменяет запрос адреса для уведомления администратора\n"
+" о создании списка рассылки, но сохраняет отправку уведомления. Это\n"
+" позволяет сделать создание списка полностью автоматическим, но с\n"
+" отправкой уведомления -- при условии того, что необходимые "
+"параметры\n"
+" \"имя_списка_рассылки\", \"адрес_администратора\" и \"пароль\" "
+"указаны\n"
+" в команде вызова сценария.\n"
"\n"
" -h/--help\n"
" Напечатать эту подсказку и завершить работу.\n"
@@ -11249,8 +11297,8 @@ msgstr ""
"а также\n"
"\"emailhost\", если последний не найден в таблице виртуальных хостов. Учтите "
"что\n"
-"\"--urlhost\" и \"--emailhost\" имеют преимущество перед этой формой "
-"записи.\n"
+"\"--urlhost\" и \"--emailhost\" имеют преимущество перед этой формой записи."
+"\n"
"\n"
"Если вы задаете имя списка рассылки без указания имени домена, то имя "
"почтового\n"
diff --git a/templates/ru/Makefile b/templates/ru/Makefile
deleted file mode 100644
index 148099df..00000000
--- a/templates/ru/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# 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/adminaddrchgack.txt b/templates/ru/adminaddrchgack.txt
new file mode 100644
index 00000000..00486a03
--- /dev/null
+++ b/templates/ru/adminaddrchgack.txt
@@ -0,0 +1,5 @@
+Адрес подписки на %(listname)s
+для %(name)s был успешно изменен
+с %(oldaddr)s на %(newaddr)s.
+
+
diff --git a/templates/ru/admindbdetails.html b/templates/ru/admindbdetails.html
index 55a163c2..5759ea23 100644
--- a/templates/ru/admindbdetails.html
+++ b/templates/ru/admindbdetails.html
@@ -13,7 +13,8 @@
действие, если вы хотите указанно сообжение переправить или сохранить (см.
ниже).
- <li><b>Одобрить</b> &mdash; переправить сообщение в список рассылки.
+ <li><b>Принять/Одобрить</b> &mdash; принять сообщение и переправить его
+ в список рассылки. Для запросов об изменении подписки, одобрить их.
<li><b>Отказать</b> &mdash; отвергнуть сообщение, отправив отправителю
уведомление, что его сообщение принято не было. Само сообщение после
diff --git a/templates/ru/s2s.py b/templates/ru/s2s.py
deleted file mode 100644
index 5f3e08bd..00000000
--- a/templates/ru/s2s.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#! /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
deleted file mode 100644
index 5a3dd145..00000000
--- a/templates/ru/status
+++ /dev/null
@@ -1,44 +0,0 @@
-admindbdetails.html 2.1.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.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.2.3 started
-postack.txt 2.1 done
-postauth.txt 2.0 done
-postheld.txt 2.1 done
-private.html 2.1.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.2.1 done
-emptyarchive.html 2.0 done
-admindbsummary.html 2.0 done
-disabled.txt 2.1 done
-archidxentry.html 1.1 done
-archidxfoot.html 1.1 done
-archidxhead.html 1.1 done
-archlistend.html 1.1 done
-archliststart.html 1.1 done
-archtocentry.html 1.1 done
-archtoc.html 1.2 done
-probe.txt 1.1.2.1 done
-archtocnombox.html 1.1.2.1 done