tested django-newsletter

This commit is contained in:
Esther Kleinhenz
2018-10-26 15:21:17 +02:00
parent 7ed667d043
commit 811b7c5453
2352 changed files with 448169 additions and 1 deletions
@@ -0,0 +1,351 @@
import logging
logger = logging.getLogger(__name__)
import io
from django import forms
from django.core.exceptions import ValidationError
from django.core.validators import validate_email
from django.utils.translation import ugettext as _
from newsletter.models import Subscription
class AddressList(object):
""" List with unique addresses. """
def __init__(self, newsletter, ignore_errors=False):
self.newsletter = newsletter
self.ignore_errors = ignore_errors
self.addresses = {}
def add(self, email, name=None, location='unknown location'):
""" Add name to list. """
logger.debug("Going to add %s <%s>", name, email)
name = check_name(name, self.ignore_errors)
email = check_email(email, self.ignore_errors)
try:
validate_email(email)
except ValidationError:
logger.warning(
"Entry '%s' does not contain a valid e-mail address at %s."
% (email, location)
)
if not self.ignore_errors:
raise forms.ValidationError(_(
"Entry '%s' does not contain a valid "
"e-mail address.") % name
)
# Skip this entry
return
if email in self.addresses:
logger.warning(
"Entry '%s' contains a duplicate entry at %s."
% (email, location)
)
if not self.ignore_errors:
raise forms.ValidationError(_(
"The address file contains duplicate entries "
"for '%s'.") % email)
# Skip this entry
return
if subscription_exists(self.newsletter, email, name):
logger.warning(
"Entry '%s' is already subscribed to at %s."
% (email, location)
)
if not self.ignore_errors:
raise forms.ValidationError(
_("Some entries are already subscribed to."))
# Skip this entry
return
self.addresses[email] = name
def subscription_exists(newsletter, email, name=None):
"""
Return wheter or not a subscription exists.
"""
qs = Subscription.objects.filter(
newsletter__id=newsletter.id,
subscribed=True,
email_field__exact=email)
return qs.exists()
def check_email(email, ignore_errors=False):
"""
Check (length of) email address.
TODO: Update this to perform full validation on email.
"""
logger.debug("Checking e-mail address %s", email)
email_length = Subscription._meta.get_field('email_field').max_length
# Get rid of leading/trailing spaces
email = email.strip()
if len(email) <= email_length or ignore_errors:
return email[:email_length]
else:
raise forms.ValidationError(
_(
"E-mail address %(email)s too long, maximum length is "
"%(email_length)s characters."
) % {
"email": email,
"email_length": email_length
}
)
def check_name(name, ignore_errors=False):
"""
Check (length of) name.
TODO: Update this to perform full validation on name.
"""
logger.debug("Checking name: %s", name)
name_length = Subscription._meta.get_field('name_field').max_length
# Get rid of leading/trailing spaces
name = name.strip()
if len(name) <= name_length or ignore_errors:
return name[:name_length]
else:
raise forms.ValidationError(
_(
"Name %(name)s too long, maximum length is "
"%(name_length)s characters."
) % {
"name": name,
"name_length": name_length
}
)
def get_encoding(myfile):
""" Returns encoding of file, rewinding the file after detection. """
# Detect encoding
from chardet.universaldetector import UniversalDetector
detector = UniversalDetector()
for line in myfile.readlines():
detector.feed(line)
if detector.done:
break
detector.close()
encoding = detector.result['encoding']
# Reset the file index
myfile.seek(0)
return encoding
def parse_csv(myfile, newsletter, ignore_errors=False):
"""
Parse addresses from CSV file-object into newsletter.
Returns a dictionary mapping email addresses into Subscription objects.
"""
import unicodecsv
encoding = get_encoding(myfile)
# Attempt to detect the dialect
# Ref: https://bugs.python.org/issue5332
encodedfile = io.TextIOWrapper(myfile, encoding=encoding, newline='')
dialect = unicodecsv.Sniffer().sniff(encodedfile.read(1024))
# Reset the file index
myfile.seek(0)
logger.info('Detected encoding %s and dialect %s for CSV file',
encoding, dialect)
myreader = unicodecsv.reader(myfile, dialect=dialect, encoding=encoding)
firstrow = next(myreader)
# Find name column
colnum = 0
namecol = None
for column in firstrow:
if "name" in column.lower() or _("name") in column.lower():
namecol = colnum
if "display" in column.lower() or \
_("display") in column.lower():
break
colnum += 1
if namecol is None:
raise forms.ValidationError(_(
"Name column not found. The name of this column should be "
"either 'name' or '%s'.") % _("name")
)
logger.debug("Name column found: '%s'", firstrow[namecol])
# Find email column
colnum = 0
mailcol = None
for column in firstrow:
if 'email' in column.lower() or \
'e-mail' in column.lower() or \
_("e-mail") in column.lower():
mailcol = colnum
break
colnum += 1
if mailcol is None:
raise forms.ValidationError(_(
"E-mail column not found. The name of this column should be "
"either 'email', 'e-mail' or '%(email)s'.") %
{'email': _("e-mail")}
)
logger.debug("E-mail column found: '%s'", firstrow[mailcol])
if namecol == mailcol:
raise forms.ValidationError(
_(
"Could not properly determine the proper columns in the "
"CSV-file. There should be a field called 'name' or "
"'%(name)s' and one called 'e-mail' or '%(e-mail)s'."
) % {
"name": _("name"),
"e-mail": _("e-mail")
}
)
logger.debug('Extracting data.')
address_list = AddressList(newsletter, ignore_errors)
for row in myreader:
if not max(namecol, mailcol) < len(row):
logger.warning(
"Column count does not match for row number %d",
myreader.line_num, extra=dict(data={'row': row})
)
if ignore_errors:
# Skip this record
continue
else:
raise forms.ValidationError(_(
"Row with content '%(row)s' does not contain a name and "
"email field.") % {'row': row}
)
address_list.add(
row[mailcol], row[namecol], location="line %d" % myreader.line_num
)
return address_list.addresses
def parse_vcard(myfile, newsletter, ignore_errors=False):
"""
Parse addresses from vCard file-object into newsletter.
Returns a dictionary mapping email addresses into Subscription objects.
"""
import card_me
encoding = get_encoding(myfile)
encodedfile = io.TextIOWrapper(myfile, encoding=encoding)
try:
myvcards = card_me.readComponents(encodedfile)
except card_me.VObjectError as e:
raise forms.ValidationError(
_(u"Error reading vCard file: %s" % e)
)
address_list = AddressList(newsletter, ignore_errors)
for myvcard in myvcards:
if hasattr(myvcard, 'fn'):
name = myvcard.fn.value
else:
name = None
# Do we have an email address?
# If not: either continue to the next vcard or raise validation error.
if hasattr(myvcard, 'email'):
email = myvcard.email.value
elif not ignore_errors:
raise forms.ValidationError(
_("Entry '%s' contains no email address.") % name)
else:
continue
address_list.add(email, name)
return address_list.addresses
def parse_ldif(myfile, newsletter, ignore_errors=False):
"""
Parse addresses from LDIF file-object into newsletter.
Returns a dictionary mapping email addresses into Subscription objects.
"""
from ldif3 import LDIFParser
address_list = AddressList(newsletter, ignore_errors)
try:
parser = LDIFParser(myfile)
for dn, entry in parser.parse():
if 'mail' in entry:
email = entry['mail'][0]
if 'cn' in entry:
name = entry['cn'][0]
else:
name = None
address_list.add(email, name)
elif not ignore_errors:
raise forms.ValidationError(
_("Some entries have no e-mail address."))
except ValueError as e:
if not ignore_errors:
raise forms.ValidationError(e)
return address_list.addresses
@@ -0,0 +1,533 @@
from __future__ import unicode_literals
import logging
logger = logging.getLogger(__name__)
import six
from django.db import models
from django.conf import settings
from django.conf.urls import url
from django.contrib import admin, messages
from django.contrib.sites.models import Site
from django.core import serializers
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render
from django.utils.html import format_html
from django.utils.translation import ugettext as _, ungettext
from django.utils.formats import date_format
from django.views.decorators.clickjacking import xframe_options_sameorigin
try:
from django.views.i18n import JavaScriptCatalog
HAS_CBV_JSCAT = True
except ImportError: # Django < 1.10
from django.views.i18n import javascript_catalog
HAS_CBV_JSCAT = False
from sorl.thumbnail.admin import AdminImageMixin
from .models import (
Newsletter, Subscription, Article, Message, Submission
)
from django.utils.timezone import now
from .admin_forms import (
SubmissionAdminForm, SubscriptionAdminForm, ImportForm, ConfirmForm,
ArticleFormSet
)
from .admin_utils import ExtendibleModelAdminMixin, make_subscription
from .compat import get_context, reverse
from .settings import newsletter_settings
# Contsruct URL's for icons
ICON_URLS = {
'yes': '%snewsletter/admin/img/icon-yes.gif' % settings.STATIC_URL,
'wait': '%snewsletter/admin/img/waiting.gif' % settings.STATIC_URL,
'submit': '%snewsletter/admin/img/submitting.gif' % settings.STATIC_URL,
'no': '%snewsletter/admin/img/icon-no.gif' % settings.STATIC_URL
}
class NewsletterAdmin(admin.ModelAdmin):
list_display = (
'title', 'admin_subscriptions', 'admin_messages', 'admin_submissions'
)
prepopulated_fields = {'slug': ('title',)}
""" List extensions """
def _admin_url(self, obj, model, text):
url = reverse('admin:%s_%s_changelist' %
(model._meta.app_label, model._meta.model_name),
current_app=self.admin_site.name)
return format_html(
'<a href="{}?newsletter__id={}">{}</a>', url, obj.id, text
)
def admin_messages(self, obj):
return self._admin_url(obj, Message, _("Messages"))
admin_messages.short_description = ''
def admin_subscriptions(self, obj):
return self._admin_url(obj, Subscription, _("Subscriptions"))
admin_subscriptions.short_description = ''
def admin_submissions(self, obj):
return self._admin_url(obj, Submission, _("Submissions"))
admin_submissions.short_description = ''
class NewsletterAdminLinkMixin(object):
def admin_newsletter(self, obj):
opts = Newsletter._meta
newsletter = obj.newsletter
url = reverse('admin:%s_%s_change' % (opts.app_label, opts.model_name),
args=(newsletter.id,), current_app=self.admin_site.name)
return format_html('<a href="{}">{}</a>', url, newsletter)
admin_newsletter.short_description = _('newsletter')
class SubmissionAdmin(NewsletterAdminLinkMixin, ExtendibleModelAdminMixin,
admin.ModelAdmin):
form = SubmissionAdminForm
list_display = (
'admin_message', 'admin_newsletter', 'admin_publish_date', 'publish',
'admin_status_text', 'admin_status'
)
date_hierarchy = 'publish_date'
list_filter = ('newsletter', 'publish', 'sent')
save_as = True
filter_horizontal = ('subscriptions',)
""" List extensions """
def admin_message(self, obj):
return format_html('<a href="{}/">{}</a>', obj.id, obj.message.title)
admin_message.short_description = _('submission')
def admin_publish_date(self, obj):
if obj.publish_date:
return date_format(obj.publish_date, 'DATETIME_FORMAT')
else:
return ''
admin_publish_date.short_description = _("publish date")
def admin_status(self, obj):
if obj.prepared:
if obj.sent:
return format_html(
'<img src="{}" width="10" height="10" alt="{}"/>',
ICON_URLS['yes'], self.admin_status_text(obj)
)
else:
if obj.publish_date > now():
return format_html(
'<img src="{}" width="10" height="10" alt="{}"/>',
ICON_URLS['wait'], self.admin_status_text(obj)
)
else:
return format_html(
'<img src="{}" width="12" height="12" alt="{}"/>',
ICON_URLS['wait'], self.admin_status_text(obj)
)
else:
return format_html(
'<img src="{}" width="10" height="10" alt="{}"/>',
ICON_URLS['no'], self.admin_status_text(obj)
)
admin_status.short_description = ''
def admin_status_text(self, obj):
if obj.prepared:
if obj.sent:
return _("Sent.")
else:
if obj.publish_date > now():
return _("Delayed submission.")
else:
return _("Submitting.")
else:
return _("Not sent.")
admin_status_text.short_description = _('Status')
""" Views """
def submit(self, request, object_id):
submission = self._getobj(request, object_id)
if submission.sent or submission.prepared:
messages.info(request, _("Submission already sent."))
change_url = reverse(
'admin:newsletter_submission_change', args=[object_id]
)
return HttpResponseRedirect(change_url)
submission.prepared = True
submission.save()
messages.info(request, _("Your submission is being sent."))
changelist_url = reverse('admin:newsletter_submission_changelist')
return HttpResponseRedirect(changelist_url)
""" URLs """
def get_urls(self):
urls = super(SubmissionAdmin, self).get_urls()
my_urls = [
url(
r'^(.+)/submit/$',
self._wrap(self.submit),
name=self._view_name('submit')
)
]
return my_urls + urls
StackedInline = admin.StackedInline
if (
newsletter_settings.RICHTEXT_WIDGET
and newsletter_settings.RICHTEXT_WIDGET.__name__ == "ImperaviWidget"
):
# Imperavi works a little differently
# It's not just a field, it's also a media class and a method.
# To avoid complications, we reuse ImperaviStackedInlineAdmin
try:
from imperavi.admin import ImperaviStackedInlineAdmin
StackedInline = ImperaviStackedInlineAdmin
except ImportError:
# Log a warning when import fails as to aid debugging.
logger.warning(
'Error importing ImperaviStackedInlineAdmin. '
'Imperavi WYSIWYG text editor might not work.'
)
class ArticleInline(AdminImageMixin, StackedInline):
model = Article
extra = 2
formset = ArticleFormSet
fieldsets = (
(None, {
'fields': ('title', 'text')
}),
(_('Optional'), {
'fields': ('sortorder', 'url', 'image'),
'classes': ('collapse',)
}),
)
if newsletter_settings.RICHTEXT_WIDGET:
formfield_overrides = {
models.TextField: {'widget': newsletter_settings.RICHTEXT_WIDGET},
}
class MessageAdmin(NewsletterAdminLinkMixin, ExtendibleModelAdminMixin,
admin.ModelAdmin):
save_as = True
list_display = (
'admin_title', 'admin_newsletter', 'admin_preview', 'date_create',
'date_modify'
)
list_filter = ('newsletter', )
date_hierarchy = 'date_create'
prepopulated_fields = {'slug': ('title',)}
inlines = [ArticleInline, ]
""" List extensions """
def admin_title(self, obj):
return format_html('<a href="{}/">{}</a>', obj.id, obj.title)
admin_title.short_description = _('message')
def admin_preview(self, obj):
url = reverse('admin:' + self._view_name('preview'), args=(obj.id,),
current_app=self.admin_site.name)
return format_html('<a href="{}">{}</a>', url, _("Preview"))
admin_preview.short_description = ''
""" Views """
def preview(self, request, object_id):
return render(
request,
"admin/newsletter/message/preview.html",
{'message': self._getobj(request, object_id)},
)
@xframe_options_sameorigin
def preview_html(self, request, object_id):
message = self._getobj(request, object_id)
if not message.html_template:
raise Http404(_(
'No HTML template associated with the newsletter this '
'message belongs to.'
))
c = get_context({'message': message,
'site': Site.objects.get_current(),
'newsletter': message.newsletter,
'date': now(),
'STATIC_URL': settings.STATIC_URL,
'MEDIA_URL': settings.MEDIA_URL})
return HttpResponse(message.html_template.render(c))
@xframe_options_sameorigin
def preview_text(self, request, object_id):
message = self._getobj(request, object_id)
c = get_context({
'message': message,
'site': Site.objects.get_current(),
'newsletter': message.newsletter,
'date': now(),
'STATIC_URL': settings.STATIC_URL,
'MEDIA_URL': settings.MEDIA_URL
}, autoescape=False)
return HttpResponse(
message.text_template.render(c),
content_type='text/plain'
)
def submit(self, request, object_id):
submission = Submission.from_message(self._getobj(request, object_id))
change_url = reverse(
'admin:newsletter_submission_change', args=[submission.id])
return HttpResponseRedirect(change_url)
def subscribers_json(self, request, object_id):
message = self._getobj(request, object_id)
json = serializers.serialize(
"json", message.newsletter.get_subscriptions(), fields=()
)
return HttpResponse(json, content_type='application/json')
""" URLs """
def get_urls(self):
urls = super(MessageAdmin, self).get_urls()
my_urls = [
url(r'^(.+)/preview/$',
self._wrap(self.preview),
name=self._view_name('preview')),
url(r'^(.+)/preview/html/$',
self._wrap(self.preview_html),
name=self._view_name('preview_html')),
url(r'^(.+)/preview/text/$',
self._wrap(self.preview_text),
name=self._view_name('preview_text')),
url(r'^(.+)/submit/$',
self._wrap(self.submit),
name=self._view_name('submit')),
url(r'^(.+)/subscribers/json/$',
self._wrap(self.subscribers_json),
name=self._view_name('subscribers_json')),
]
return my_urls + urls
class SubscriptionAdmin(NewsletterAdminLinkMixin, ExtendibleModelAdminMixin,
admin.ModelAdmin):
form = SubscriptionAdminForm
list_display = (
'name', 'email', 'admin_newsletter', 'admin_subscribe_date',
'admin_unsubscribe_date', 'admin_status_text', 'admin_status'
)
list_display_links = ('name', 'email')
list_filter = (
'newsletter', 'subscribed', 'unsubscribed', 'subscribe_date'
)
search_fields = (
'name_field', 'email_field', 'user__first_name', 'user__last_name',
'user__email'
)
readonly_fields = (
'ip', 'subscribe_date', 'unsubscribe_date', 'activation_code'
)
date_hierarchy = 'subscribe_date'
actions = ['make_subscribed', 'make_unsubscribed']
exclude = ['unsubscribed']
""" List extensions """
def admin_status(self, obj):
img_tag = '<img src="{}" width="10" height="10" alt="{}"/>'
alt_txt = self.admin_status_text(obj)
if obj.unsubscribed:
return format_html(img_tag, ICON_URLS['no'], alt_txt)
if obj.subscribed:
return format_html(img_tag, ICON_URLS['yes'], alt_txt)
else:
return format_html(img_tag, ICON_URLS['wait'], alt_txt)
admin_status.short_description = ''
def admin_status_text(self, obj):
if obj.subscribed:
return _("Subscribed")
elif obj.unsubscribed:
return _("Unsubscribed")
else:
return _("Unactivated")
admin_status_text.short_description = _('Status')
def admin_subscribe_date(self, obj):
if obj.subscribe_date:
return date_format(obj.subscribe_date)
else:
return ''
admin_subscribe_date.short_description = _("subscribe date")
def admin_unsubscribe_date(self, obj):
if obj.unsubscribe_date:
return date_format(obj.unsubscribe_date)
else:
return ''
admin_unsubscribe_date.short_description = _("unsubscribe date")
""" Actions """
def make_subscribed(self, request, queryset):
rows_updated = queryset.update(subscribed=True)
self.message_user(
request,
ungettext(
"%d user has been successfully subscribed.",
"%d users have been successfully subscribed.",
rows_updated
) % rows_updated
)
make_subscribed.short_description = _("Subscribe selected users")
def make_unsubscribed(self, request, queryset):
rows_updated = queryset.update(subscribed=False)
self.message_user(
request,
ungettext(
"%d user has been successfully unsubscribed.",
"%d users have been successfully unsubscribed.",
rows_updated
) % rows_updated
)
make_unsubscribed.short_description = _("Unsubscribe selected users")
""" Views """
def subscribers_import(self, request):
if not request.user.has_perm('newsletter.add_subscription'):
raise PermissionDenied()
if request.POST:
form = ImportForm(request.POST, request.FILES)
if form.is_valid():
request.session['addresses'] = form.get_addresses()
request.session['newsletter_pk'] = \
form.cleaned_data['newsletter'].pk
confirm_url = reverse(
'admin:newsletter_subscription_import_confirm'
)
return HttpResponseRedirect(confirm_url)
else:
form = ImportForm()
return render(
request,
"admin/newsletter/subscription/importform.html",
{'form': form},
)
def subscribers_import_confirm(self, request):
# If no addresses are in the session, start all over.
if 'addresses' not in request.session:
import_url = reverse('admin:newsletter_subscription_import')
return HttpResponseRedirect(import_url)
addresses = request.session['addresses']
newsletter = Newsletter.objects.get(
pk=request.session['newsletter_pk']
)
logger.debug('Confirming addresses: %s', addresses)
if request.POST:
form = ConfirmForm(request.POST)
if form.is_valid():
try:
for email, name in six.iteritems(addresses):
address_inst = make_subscription(
newsletter, email, name
)
address_inst.save()
finally:
del request.session['addresses']
del request.session['newsletter_pk']
messages.success(
request,
ungettext(
"%d subscription has been successfully added.",
"%d subscriptions have been successfully added.",
len(addresses)
) % len(addresses)
)
changelist_url = reverse(
'admin:newsletter_subscription_changelist'
)
return HttpResponseRedirect(changelist_url)
else:
form = ConfirmForm()
return render(
request,
"admin/newsletter/subscription/confirmimportform.html",
{'form': form, 'subscribers': addresses},
)
""" URLs """
def get_urls(self):
urls = super(SubscriptionAdmin, self).get_urls()
my_urls = [
url(r'^import/$',
self._wrap(self.subscribers_import),
name=self._view_name('import')),
url(r'^import/confirm/$',
self._wrap(self.subscribers_import_confirm),
name=self._view_name('import_confirm')),
]
# Translated JS strings - these should be app-wide but are
# only used in this part of the admin. For now, leave them here.
if HAS_CBV_JSCAT:
my_urls.append(url(r'^jsi18n/$',
JavaScriptCatalog.as_view(packages=('newsletter',)),
name='newsletter_js18n'))
else:
my_urls.append(url(r'^jsi18n/$',
javascript_catalog,
{'packages': ('newsletter',)},
name='newsletter_js18n'))
return my_urls + urls
admin.site.register(Newsletter, NewsletterAdmin)
admin.site.register(Submission, SubmissionAdmin)
admin.site.register(Message, MessageAdmin)
admin.site.register(Subscription, SubscriptionAdmin)
@@ -0,0 +1,180 @@
import logging
from django import forms
from django.contrib.admin import widgets, options
from django.utils.translation import ugettext as _
from .models import Subscription, Newsletter, Submission
from .addressimport.parsers import parse_csv, parse_vcard, parse_ldif
logger = logging.getLogger(__name__)
class ImportForm(forms.Form):
def clean(self):
# If there are validation errors earlier on, don't bother.
if not ('address_file' in self.cleaned_data and
'ignore_errors' in self.cleaned_data and
'newsletter' in self.cleaned_data):
return self.cleaned_data
# TESTME: Should an error be raised here or not?
# raise forms.ValidationError(_("No file has been specified."))
ignore_errors = self.cleaned_data['ignore_errors']
newsletter = self.cleaned_data['newsletter']
myfield = self.base_fields['address_file']
myvalue = myfield.widget.value_from_datadict(
self.data, self.files, self.add_prefix('address_file'))
content_type = myvalue.content_type
allowed_types = ('text/plain', 'application/octet-stream',
'text/vcard', 'text/directory', 'text/x-vcard',
'application/vnd.ms-excel',
'text/comma-separated-values', 'text/csv',
'application/csv', 'application/excel',
'application/vnd.msexcel', 'text/anytext')
if content_type not in allowed_types:
raise forms.ValidationError(_(
"File type '%s' was not recognized.") % content_type)
ext = myvalue.name.rsplit('.', 1)[-1].lower()
if ext == 'vcf':
self.addresses = parse_vcard(
myvalue.file, newsletter, ignore_errors)
elif ext == 'ldif':
self.addresses = parse_ldif(
myvalue.file, newsletter, ignore_errors)
elif ext == 'csv':
self.addresses = parse_csv(
myvalue.file, newsletter, ignore_errors)
else:
raise forms.ValidationError(
_("File extension '%s' was not recognized.") % ext)
if len(self.addresses) == 0:
raise forms.ValidationError(
_("No entries could found in this file."))
return self.cleaned_data
def get_addresses(self):
return getattr(self, 'addresses', {})
newsletter = forms.ModelChoiceField(
label=_("Newsletter"),
queryset=Newsletter.objects.all(),
initial=Newsletter.get_default)
address_file = forms.FileField(label=_("Address file"))
ignore_errors = forms.BooleanField(
label=_("Ignore non-fatal errors"),
initial=False, required=False)
class ConfirmForm(forms.Form):
def clean(self):
value = self.cleaned_data['confirm']
if not value:
raise forms.ValidationError(
_("You should confirm in order to continue."))
confirm = forms.BooleanField(
label=_("Confirm import"),
initial=True, widget=forms.HiddenInput)
class SubscriptionAdminForm(forms.ModelForm):
class Meta:
model = Subscription
fields = '__all__'
widgets = {
'subscribed': widgets.AdminRadioSelect(
choices=[
(True, _('Subscribed')),
(False, _('Unsubscribed'))
],
attrs={
'class': options.get_ul_class(options.HORIZONTAL)
}
)
}
def __init__(self, *args, **kwargs):
super(SubscriptionAdminForm, self).__init__(*args, **kwargs)
self.fields['subscribed'].label = _('Status')
def clean_email_field(self):
data = self.cleaned_data['email_field']
if self.cleaned_data['user'] and data:
raise forms.ValidationError(_(
'If a user has been selected this field '
'should remain empty.'))
return data
def clean_name_field(self):
data = self.cleaned_data['name_field']
if self.cleaned_data['user'] and data:
raise forms.ValidationError(_(
'If a user has been selected '
'this field should remain empty.'))
return data
def clean(self):
cleaned_data = super(SubscriptionAdminForm, self).clean()
if not (cleaned_data.get('user', None) or
cleaned_data.get('email_field', None)):
raise forms.ValidationError(_(
'Either a user must be selected or an email address must '
'be specified.')
)
return cleaned_data
class SubmissionAdminForm(forms.ModelForm):
class Meta:
model = Submission
fields = '__all__'
def clean_publish(self):
"""
Make sure only one submission can be published for each message.
"""
publish = self.cleaned_data['publish']
if publish and not self.errors:
message = self.cleaned_data['message']
qs = Submission.objects.filter(publish=True, message=message)
if self.instance:
qs = qs.exclude(pk=self.instance.pk)
if qs.exists():
raise forms.ValidationError(_(
'This message has already been published in some '
'other submission. Messages can only be published once.')
)
return publish
class ArticleFormSet(forms.BaseInlineFormSet):
""" Formset for articles yielding default sortoder. """
def __init__(self, *args, **kwargs):
super(ArticleFormSet, self).__init__(*args, **kwargs)
assert self.instance
next_sortorder = self.instance.get_next_article_sortorder()
for index, form in enumerate(self.extra_forms):
form.initial['sortorder'] = next_sortorder + index * 10
@@ -0,0 +1,55 @@
from functools import update_wrapper
from django.contrib.admin.utils import unquote
from django.http import Http404
from django.utils.encoding import force_text
from django.utils.translation import ugettext as _
from .models import Subscription
class ExtendibleModelAdminMixin(object):
def _getobj(self, request, object_id):
opts = self.model._meta
try:
obj = self.get_queryset(request).get(pk=unquote(object_id))
except self.model.DoesNotExist:
# Don't raise Http404 just yet, because we haven't checked
# permissions yet. We don't want an unauthenticated user to
# be able to determine whether a given object exists.
obj = None
if obj is None:
raise Http404(
_(
'%(name)s object with primary key '
'%(key)r does not exist.'
) % {
'name': force_text(opts.verbose_name),
'key': force_text(object_id)
}
)
return obj
def _wrap(self, view):
def wrapper(*args, **kwargs):
return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view)
def _view_name(self, name):
info = self.model._meta.app_label, self.model._meta.model_name, name
return '%s_%s_%s' % info
def make_subscription(newsletter, email, name=None):
addr = Subscription(subscribed=True)
addr.newsletter = newsletter
addr.email_field = email
if name:
addr.name_field = name
return addr
@@ -0,0 +1,16 @@
from django import get_version
try:
from django.urls import reverse
except ImportError: # Django < 1.10
from django.core.urlresolvers import reverse
if get_version() < '1.10':
from django.template import Context
def get_context(dictionary, **kwargs):
"""Takes a dict and returns the correct object for template rendering."""
if get_version() < '1.10':
return Context(dictionary, **kwargs)
else:
return dictionary
@@ -0,0 +1,165 @@
from django import forms
from django.forms.utils import ValidationError
from django.utils.translation import ugettext_lazy as _
from .models import Subscription
from .validators import validate_email_nouser
class NewsletterForm(forms.ModelForm):
""" This is the base class for all forms managing subscriptions. """
class Meta:
model = Subscription
fields = ('name_field', 'email_field')
def __init__(self, *args, **kwargs):
assert 'newsletter' in kwargs, 'No newsletter specified'
newsletter = kwargs.pop('newsletter')
if 'ip' in kwargs:
ip = kwargs['ip']
del kwargs['ip']
else:
ip = None
super(NewsletterForm, self).__init__(*args, **kwargs)
self.instance.newsletter = newsletter
if ip:
self.instance.ip = ip
class SubscribeRequestForm(NewsletterForm):
"""
Request subscription to the newsletter. Will result in an activation email
being sent with a link where one can edit, confirm and activate one's
subscription.
"""
email_field = forms.EmailField(
label=_("e-mail"), validators=[validate_email_nouser]
)
def clean_email_field(self):
data = self.cleaned_data['email_field']
# Check whether we have already been subscribed to
try:
subscription = Subscription.objects.get(
email_field__exact=data,
newsletter=self.instance.newsletter
)
if subscription.subscribed and not subscription.unsubscribed:
raise ValidationError(
_("Your e-mail address has already been subscribed to.")
)
else:
self.instance = subscription
self.instance = subscription
except Subscription.DoesNotExist:
pass
return data
class UpdateRequestForm(NewsletterForm):
"""
Request updating or activating subscription. Will result in an activation
email being sent.
"""
email_field = forms.EmailField(
label=_("e-mail"), validators=[validate_email_nouser]
)
class Meta(NewsletterForm.Meta):
fields = ('email_field',)
def clean(self):
if not self.instance.subscribed:
raise ValidationError(
_("This subscription has not yet been activated.")
)
return super(UpdateRequestForm, self).clean()
def clean_email_field(self):
data = self.cleaned_data['email_field']
# Set our instance on the basis of the email field, or raise
# a validationerror
try:
self.instance = Subscription.objects.get(
newsletter=self.instance.newsletter,
email_field__exact=data
)
except Subscription.DoesNotExist:
raise ValidationError(
_("This e-mail address has not been subscribed to.")
)
return data
class UnsubscribeRequestForm(UpdateRequestForm):
"""
Similar to previous form but checks if we have not
already been unsubscribed.
"""
def clean(self):
if self.instance.unsubscribed:
raise ValidationError(
_("This subscription has already been unsubscribed from.")
)
return super(UnsubscribeRequestForm, self).clean()
class UpdateForm(NewsletterForm):
"""
This form allows one to actually update to or unsubscribe from the
newsletter. To do this, a correct activation code is required.
"""
email_field = forms.EmailField(
label=_("e-mail"), validators=[validate_email_nouser], disabled=True
)
def clean_user_activation_code(self):
data = self.cleaned_data['user_activation_code']
if data != self.instance.activation_code:
raise ValidationError(
_('The validation code supplied by you does not match.')
)
return data
user_activation_code = forms.CharField(
label=_("Activation code"), max_length=40
)
class UserUpdateForm(forms.ModelForm):
"""
Form for updating subscription information/unsubscribing as a logged-in
user.
"""
class Meta:
model = Subscription
fields = ('subscribed',)
# Newsletter here should become a read only field,
# once this is supported by Django.
# For now, use a hidden field.
hidden_fields = ('newsletter',)
@@ -0,0 +1,15 @@
import warnings
from django_extensions.management.jobs import HourlyJob
from django.core.management import call_command
class Job(HourlyJob):
help = "Submit pending messages."
def execute(self):
warnings.warn(
"The django-extensions cron job is deprecated in favor of the"
"submit_newsletter management command.", DeprecationWarning)
call_command('submit_newsletter')
@@ -0,0 +1,863 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# amrnegm <amrnegm.01@gmail.com>, 2013
# Bashar Al-Abdulhadi, 2015,2018
# Bashar Al-Abdulhadi, 2014
# dokterbob <mathijs@mathijsfietst.nl>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\n"
"PO-Revision-Date: 2018-04-04 14:42+0000\n"
"Last-Translator: Bashar Al-Abdulhadi\n"
"Language-Team: Arabic (http://www.transifex.com/dokterbob/django-newsletter/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "السجل '%s' لا يتضمن عنوان بريد إلكتروني صحيح."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "ملف العناوين يتضمن عناوين مكرره للسجل '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "بعض المدخلات مشتركة سلفا في."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "عنوان البريد الإلكتروني %(email)s طويل جدا، والحد الأقصى هو %(email_length)s حرف."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "الإسم %(name)s طويل جدا, الحد الأقصى هو %(name_length)s حرف."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr "الاسم"
#: addressimport/parsers.py:200
msgid "display"
msgstr "عرض"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "لم يتم العثور على اسم العمود. يجب أن يكون اسم هذا العمود إما 'اسم' أو '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr "البريد الإلكتروني"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "لم يتم العثور على اسم عمود البريد الإلكتروني. يجب أن يكون اسم هذا العمود إما 'email' أو '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "لا يمكن تحديد الأعمدة المناسبة بشكل صحيح في ملف CSV. يجب أن يكون هناك حقل يسمى 'اسم' أو '%(name)s' و واحد يسمى 'البريد الإلكتروني' أو '%(e-mail)s'."
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "الصف الذي يحتوي على '%(row)s' لا تحتوي على حقول الاسم والبريد الإلكتروني."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "خطأ بقراءة ملف vCard: %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "السجل '%s' لا يتضمن بريد إلكتروني."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "بعض المدخلات لا تتضمن عنوان بريد إلكتروني."
#: admin.py:79
msgid "Messages"
msgstr "الرسائل"
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "الاشتراكات"
#: admin.py:87
msgid "Submissions"
msgstr "الإرساليات"
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr "قائمة التراسل"
#: admin.py:117 models.py:555
msgid "submission"
msgstr "الإرسالية"
#: admin.py:124
msgid "publish date"
msgstr "تاريخ النشر"
#: admin.py:154
msgid "Sent."
msgstr "أرسلت"
#: admin.py:157
msgid "Delayed submission."
msgstr "عملية إرسال متأخرة"
#: admin.py:159
msgid "Submitting."
msgstr "جاري الإرسال"
#: admin.py:161
msgid "Not sent."
msgstr "غير مرسل"
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "الوضعية"
#: admin.py:169
msgid "Submission already sent."
msgstr "عملية الإرسال تم إرسالها سلفا."
#: admin.py:178
msgid "Your submission is being sent."
msgstr "جاري تنفيذ عملية الإرسال."
#: admin.py:225
msgid "Optional"
msgstr "اختياري"
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr "الرسالة"
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "معاينة"
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "لا يوجد قالب HTML مرتبط مع قائمة التراسل تعود ملكية لهذه الرسالة"
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "مشترك"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "إلغاء الإشتراك"
#: admin.py:388
msgid "Unactivated"
msgstr "غير فعّال"
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr "تاريخ الإشتراك"
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr "تاريخ إلغاء الإشتراك"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: admin.py:416
msgid "Subscribe selected users"
msgstr "تسجيل المستخدمين المحددين"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "إلفاء إشتراك المستخدمين المحددين"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "لم يتم التعرف على نوع الملف '%s'."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "لم يتم التعرف على امتداد الملف '%s' ."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "لا سجلات موجودة في هذا الملف."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "قائمة التراسل"
#: admin_forms.py:75
msgid "Address file"
msgstr "ملف العنوان"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "تجاهل الأخطاء الغير فادحة"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "يجب عليك التأكيد من أجل المتابعة."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "تأكيد الإستيراد"
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "إذا تم تحديد مستخدم هذا الحقل يجبأن يطل فارغا."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "إما يجب تحديد مستخدم أو يجب تحديد عنوان بريد إلكتروني."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "وقد تم بالفعل نشر هذه الرسالة في بعض تقديمها الإرسالات الأخرى. الرسائل لا يمكن أن يتم نشرها إلا مرة واحدة."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "الكائن %(name)s مع المفتاح الأساسي %(key)r غير موجود."
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr " عنوان البريد الإلكتروني الخاص بك مسجل سلفا في."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "هذا الإشتراك لم يتم تفعيله حتى الآن."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "هذا البريد الإلكتروني غير مسجّل في."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "هذا الإشتراك تم إلغاء اشتراكه سلفا من."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "رمز التحقق المُقدم من قبلكم غير مطابقة."
#: forms.py:139
msgid "Activation code"
msgstr "رمز التفعيل"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "إرسال قوائم التراسل التي في قائمة الإنتظار"
#: models.py:34
msgid "newsletter title"
msgstr "عنوان قائمة التراسل"
#: models.py:39
msgid "Sender e-mail"
msgstr "بريد المُرسِل"
#: models.py:42
msgid "sender"
msgstr "المرسل"
#: models.py:42
msgid "Sender name"
msgstr "إسم المرسل"
#: models.py:46
msgid "visible"
msgstr "مرئي"
#: models.py:50
msgid "send html"
msgstr "أرسل HTML"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "نعم ام لا لإرسال إصدارات HTML من رسائل البريد الإلكتروني."
#: models.py:103
msgid "newsletters"
msgstr "قوائم التراسل"
#: models.py:159
msgid "user"
msgstr "مستخدم"
#: models.py:165
msgid "optional"
msgstr "اختياري"
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "تحديث الإشتراكات %(subscription)s لـ %(action)s."
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "لم يتم تعيين بريد إلكتروني او إسم مستخدم. هذا يسبب تناقض!"
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr "إذا تم تعيين المستخدم، يجب أن يكون البريد الإلكتروني لاغيا والعكس صحيح."
#: models.py:297
msgid "IP address"
msgstr "عنوان IP"
#: models.py:306
msgid "activation code"
msgstr "تاريخ التفعيل"
#: models.py:311
msgid "subscribed"
msgstr "مشترك"
#: models.py:319
msgid "unsubscribed"
msgstr "تم إلغاء الإشتراك"
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> لـ %(newsletter)s"
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s لـ %(newsletter)s"
#: models.py:340
msgid "subscription"
msgstr "الإشتراك"
#: models.py:341
msgid "subscriptions"
msgstr "الإشتراكات"
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "أمر الترتيب يُحدد وضعية تسلسل المقالات في الإرسالية."
#: models.py:431
msgid "sort order"
msgstr "أمر الترتيب"
#: models.py:434 models.py:476
msgid "title"
msgstr "العنوان"
#: models.py:435
msgid "text"
msgstr "النص"
#: models.py:438
msgid "link"
msgstr "رابط"
#: models.py:444
msgid "image"
msgstr "صورة"
#: models.py:456
msgid "article"
msgstr "مقالة"
#: models.py:457
msgid "articles"
msgstr "مقالات"
#: models.py:477
msgid "slug"
msgstr "slug"
#: models.py:484
msgid "created"
msgstr "أنشئ"
#: models.py:487
msgid "modified"
msgstr "تم التعديل"
#: models.py:492
msgid "messages"
msgstr "الرسائل"
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s في %(newsletter)s"
#: models.py:556
msgid "submissions"
msgstr "الإرساليات"
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s في %(publish_date)s"
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "إرسال %(submission)s إلى %(count)d شخص"
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr "إرسال الرسالى إلى: %s."
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "الرسالة %(subscription)s فشلت بسبب: %(error)s"
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr "إرساليات من الرسائل %s"
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "إن لم تختار أي مشترك, النظام سوف يختار مشتركين لك بشكل تلقائي."
#: models.py:711
msgid "recipients"
msgstr "المستلمين"
#: models.py:716
msgid "publication date"
msgstr "تاريخ النشر"
#: models.py:720
msgid "publish"
msgstr "انشر"
#: models.py:721
msgid "Publish in archive."
msgstr "انشر في الأرشيف."
#: models.py:725
msgid "prepared"
msgstr "مجهّز"
#: models.py:729
msgid "sent"
msgstr "تم الإرسال"
#: models.py:733
msgid "sending"
msgstr "جاري الإرسال"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "معاينة الرسالة"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "الرئيسية"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "الرسالة"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "تغيير"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "إنشاء إرسالية"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "النص"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "أرسل"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "إستيراد"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "إستيراد عناوين"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "تأكيد"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "رفع"
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr "قراءة المزيد"
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr "قراءة الرسالة من خلال المتصفح"
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "إلغاء الإشتراك"
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr "إلغاء الإشتراك:"
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr "التسجيل في %(title)s"
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr "تأكيد الإشتراك"
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr "إلغاء الإشتراك من %(title)s"
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr "تأكيد إلغاء الإشتراك"
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr "تحديث الإشتراك في %(title)s"
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr "تحديث البيانات"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "تفاصيل قائمة التراسل"
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "الإشتراك"
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr "تحديث"
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr "أرشفة"
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr "العودة للقائمة"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "قوائم التراسل"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "تحديث الإشتراكات"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "أرشيف قائمة التراسل"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "تفعيل"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "تفعيل"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "إشتراك قائمة التراسل"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "بسبب خطأ فني لم نكن قادرين على إرسال رسالة تأكيد التسجيل. هذا يمكن أن يكون بسبب عنوان بريدك الإلكتروني غير صحيح."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "تم تفعيل اشتراكك بنجاح."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "تم استقبال طلب إشتراكك بنجاح وتم إرسال رسالة إلكترونية تفعيل لك. في تلك الرسالة سوف تجد رابط تحتاج إلى متابعته لتفعيل اشتراكك."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "هل ترغب في الاشتراك في قائمة التراسل هذه؟"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "إلغاء إشتراك قائمة التراسل"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "تم إلغاء إشتراكك بنجاح."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "تم إستقبال طلب إلغاء الاشتراك الخاص بك بنجاح. تم ارسال بريد الكتروني لك مع رابط تحتاج إلى متابعته من أجل تأكيد إلغاء الاشتراك الخاص بك."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "هل ترغب في إلغاء الاشتراك في قائمة التراسل هذه؟"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "تحديث قائمة التراسل"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "تحديث الإشتراك"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "تم تحديث اشتراكك بنجاح."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "تم استقبال طلب التحديث بنجاح وتم إرسال رسالة إلكترونية تفعيل لك. في تلك الرسالة سوف تجد رابط تحتاج إلى متابعته لتحديث اشتراكك."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "حاليا:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "تغيير:"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "عنوان البريد الإلكتروني '%(email)s' مملوك لمستخدم لديه حساب على هذا الموقع. الرجاء تسجيل الدخول بحساب مستخدم وحاول مرة أخرى."
#: views.py:120
msgid "Your changes have been saved."
msgstr "تم حفظ التغييرات."
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr "تم تسجيلك في %s."
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "المستخدم %(rs)s تم تسجيله في %(my_newsletter)s."
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr "أنت مسجل سلفا في %s."
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "تم إلغاء اشتراكك سلفا من %s."
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "المستخدم %(rs)s تم إلغاء إشتراكو من %(my_newsletter)s."
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr "أنت غير مسجّل في %s."
@@ -0,0 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Bashar Al-Abdulhadi, 2015
# Bashar Al-Abdulhadi, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2015-06-28 13:34+0000\n"
"Last-Translator: Bashar Al-Abdulhadi\n"
"Language-Team: Arabic (http://www.transifex.com/dokterbob/django-newsletter/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "عملية الإرسال تم التعديل عليها. يجب حفظها أولا لكي تتمكن من إرسالها. أنقر على موافق لمتابعة عملية الحفظ او إلغاء لمتابعة التعديل."
@@ -0,0 +1,780 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# dokterbob <mathijs@mathijsfietst.nl>, 2016
# tomaasch <tomas@labs.cz>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:35+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/dokterbob/django-newsletter/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs_CZ\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Položka '%s' neobsahuje validní e-mailovou adresu."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Soubor s adresami obsahuje duplicitní položku '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Některé položky jsou již přihlášeny k odběru."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "E-mailová adresa %(email)s je příliš dlouhá, maximální povolená délka je %(email_length)s znaků."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Jméno %(name)s je příliš dlouhé, maximální povolená délka je %(name_length)s znaků."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "jméno"
#: addressimport/parsers.py:200
msgid "display"
msgstr "zobrazení"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Jméno sloupce nenalezeno. Jméno sloupce musí být buď 'name' nebo '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Sloupec s e-mailem nebyl nalezen. Název tohoto sloupce by měly být buďto 'e-mail' nebo '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Nelze správně určit správné jména sloupců v CSV souboru. Tam by mělo být pole s názvem 'name' nebo '%(name)s' a jeden s názvem 'e-mail' nebo '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Řádek s obsahem '%(row)s' neobsahuje jméno a e-mailovou adresu."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Chyba při čtení souboru formátu vCard: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Položka '%s' neobsahuje žádnou e-mailovou adresu."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Některé položky nemají e-mailovou adresu."
#: admin.py:63
msgid "Messages"
msgstr "Zprávy"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Přihlášení"
#: admin.py:77
msgid "Submissions"
msgstr "Rozeslání zpráv"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "rozeslání zprávy"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "newsletter"
#: admin.py:112
msgid "publish date"
msgstr "datum zveřejnění"
#: admin.py:138
msgid "Sent."
msgstr "Odesláno."
#: admin.py:141
msgid "Delayed submission."
msgstr "Odložené rozeslání."
#: admin.py:143
msgid "Submitting."
msgstr "Přihlášen."
#: admin.py:145
msgid "Not sent."
msgstr "Nebylo zasláno."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Status"
#: admin.py:153
msgid "Submission already sent."
msgstr "Rozeslání zprávy bylo provedeno již dříve."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "Vaše zpráva se právě rozesílá."
#: admin.py:208
msgid "Optional"
msgstr "Volitelné"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "zpráva"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Náhled"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Tato zpráva nemá k dispozici žádnou HTML šablonu přiřazenou k newsletteru."
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Přihlášeno"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Odhlášen"
#: admin.py:389
msgid "Unactivated"
msgstr "Deaktivován"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "datum přihlášení"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "datum odhlášení"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s uživatel byl právě úspěšně přihlášen k odběru novinek."
msgstr[1] "%s uživatelé bylo právě úspěšně přihlášeni k odběru novinek."
msgstr[2] "%s uživatelů bylo právě úspěšně přihlášeno k odběru novinek."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Přihlásit vybrané uživatele."
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s uživatel byl právě úspěšně odhlášen z odběru novinek."
msgstr[1] "%s uživatelé byli právě úspěšně odhlášeni z odběru novinek."
msgstr[2] "%s uživatelů bylo právě úspěšně odhlášeno z odběru novinek."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Odhlásit vybrané uživatele."
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "Úspěšně bylo přidáno %s odběratelů newsletteru."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Soubor typu '%s' nebyl rozpoznán."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Přípona souboru '%s' nebyla rozpoznána."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "V souboru nebyly nalezeny žádné položky."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:73
msgid "Address file"
msgstr "Soubor s adresami"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Ignorovat drobné chyby"
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Potvrďte prosím, pokud chcete pokračovat."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Potvrdit import"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Toto pole musí zůstat prázdné, pokud byl vybrán uživatel."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "Buď musí být vybrán uživatel nebo musí být uvedena e-mailová adresa."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Tato zpráva byla již zveřejněna v jiném zaslání newsletteru. Zprávy mohou být zveřejněny pouze jednou."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objekt %(name)s s primárním klíčem %(key)r neexistuje."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "E-mailová adresa je povinná."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "E-mailová adresa '%(email)s' patří uživateli s účtem na tomto webu. Prosím, přihlaste se jako tento uživatel a zkuste to znovu."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Vaše e-mailová adresa byla přihlášena k odběru novinek již dříve."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "Toto přihlášení k odběru ještě nebylo aktivováno."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Tato e-mailová adresa patří uživateli '%(username)s'. Prosím, přihlaste se jako tento uživatel a zkuste to znovu."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Tato e-mailová adresa nebyla přihlášena k odběru novinek."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Toto přihlášení k odběru bylo již zrušeno."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "Kontrolní kód, který jste zadal(a), není správný."
#: forms.py:169
msgid "Activation code"
msgstr "Aktivační kód"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Rozeslání newsletteru bylo zařazeno do fronty."
#: models.py:32
msgid "newsletter title"
msgstr "titulek newsletteru"
#: models.py:37
msgid "Sender e-mail"
msgstr "E-mail odesílatele"
#: models.py:40
msgid "sender"
msgstr "odesílatel"
#: models.py:40
msgid "Sender name"
msgstr "Jméno odesílatele"
#: models.py:44
msgid "visible"
msgstr "viditelný"
#: models.py:48
msgid "send html"
msgstr "odeslat HTML"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Má-li se odeslat HTML verze e-mailu či nikoliv."
#: models.py:101
msgid "newsletters"
msgstr "newslettery"
#: models.py:157
msgid "user"
msgstr "uživatel"
#: models.py:162
msgid "optional"
msgstr "volitelné"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Aktualizováno přihlášení %(subscription)s k %(action)s."
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Není uvedena ani e-mailová adresa ani není vybrán uživatel."
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Pokud je nastaven uživatel, položka e-mailu musí být nevyplněna, a naopak."
#: models.py:294
msgid "IP address"
msgstr "IP adresa"
#: models.py:301
msgid "activation code"
msgstr "aktivační kód"
#: models.py:306
msgid "subscribed"
msgstr "přihlášen"
#: models.py:314
msgid "unsubscribed"
msgstr "odhlášen"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> k %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s k %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "přihlášení"
#: models.py:336
msgid "subscriptions"
msgstr "přihlášení"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Pořadím je míněno řazení článků ve zprávě newsletteru."
#: models.py:441
msgid "sort order"
msgstr "pořadí"
#: models.py:444 models.py:483
msgid "title"
msgstr "titulek"
#: models.py:445
msgid "text"
msgstr "text"
#: models.py:448
msgid "link"
msgstr "odkaz"
#: models.py:454
msgid "image"
msgstr "obrázek"
#: models.py:465
msgid "article"
msgstr "článek"
#: models.py:466
msgid "articles"
msgstr "články"
#: models.py:484
msgid "slug"
msgstr "slug (část adresy)"
#: models.py:491
msgid "created"
msgstr "vytvořeno"
#: models.py:494
msgid "modified"
msgstr "změněno"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s v %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "zprávy"
#: models.py:538
msgid "submissions"
msgstr "rozeslání zpráv"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s v %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Odesláno %(submission)s %(count)d lidem"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Odeslání zprávy k : %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Zpráva %(subscription)s skončila s chybou: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Rozeslání zprávy %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Pokud nikoho nevyberete, systém najde odběratele automaticky."
#: models.py:675
msgid "recipients"
msgstr "příjemci"
#: models.py:680
msgid "publication date"
msgstr "datum zveřejnění"
#: models.py:684
msgid "publish"
msgstr "zveřejnit"
#: models.py:685
msgid "Publish in archive."
msgstr "Zveřejnit v archivu."
#: models.py:689
msgid "prepared"
msgstr "připraveno"
#: models.py:693
msgid "sent"
msgstr "odesláno"
#: models.py:697
msgid "sending"
msgstr "zasíláno"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "Historie"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Ukázat na webu"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Náhled zprávy"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Domů"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Zpráva"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Změnit"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Připravit rozeslání zprávy"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Text"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Odeslat"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "importovat"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Přidat %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importovat adresy"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Potvrdit"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Nahrát"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Nastavení"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Všechny newslettery"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Přihlásit k odběru"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Uložit"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Archiv"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "aktivovat"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Aktivovat"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Přihlásit k odběru newsletteru"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Vzhedem k technickým problémům jsme vám nemohli odeslat potvrzovací e-mail. Zřejmě to bylo způsobeno vaší neplatnou e-malovou adresou."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Vaše přihlášení k odběru novinek bylo právě úspěšně aktivováno."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Vaše žádost o přihlášení k odběru novinek byla úspěšně přijata a byl vám zaslán e-mail s odkazem, který musíte potvrdit odkliknutím, aby vaše přihlášení k odběru novinek bylo aktivováno."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Chcete se opravdu přihlásit k odběru tohoto newsletteru?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Odhlásit z odběru newsletteru"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Odhlásit z odběru"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Právě jste byli úspěšně odhlášeni z odběru novinek."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Vaše žádost k odhlášení byla úspěšně přijata. Byl vám zaslán e-mail s odkazem, jehož odkliknutím potvrdíte vaše odhlášení."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Chcete se opravdu odhlásit z odběru tohoto newsletteru?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Aktualizovat newsletter"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Aktualizovat údaje přihlášení"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Vaše přihlášení k odběru novinek byl právě úspěšně aktualizováno."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Vaše žádost o aktualizaci údajů byla úspěšně přijata a byl vám zaslán aktivační e-mail. V tomto e-mailu najdete odkaz, který potvrdíte odkliknutím, a pak budou vaše údaje aktualizovány."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Aktuálně:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Změna:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Vaše změny byly uloženy."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Právě jste byli přihlášeni k \"%s\"."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Uživatel %(rs)s byl přihlášen k odběru novinek %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Již jste byli přihlášeni k newsletteru \"%s\" dříve."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Právě jste byli odhlášeni z \"%s\"."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Uživatel %(rs)s byl odhlášen z odběru novinek %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Nejste přihlášeni k %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# tomaasch <tomas@labs.cz>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2014-04-28 17:20+0000\n"
"Last-Translator: tomaasch <tomas@labs.cz>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/dokterbob/django-newsletter/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs_CZ\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Zpráva newsletteru byla změněna a před odesláním musí být uložena. Klikněte prosím na OK pokud ji chcete uložit, nebo klikněte na 'zrušit' pokud chcete pokračovat v úpravě zprávy."
@@ -0,0 +1,852 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Alexander Hartmann <ah@prexma.com>, 2018
# Jannis Vajen, 2013
# Jannis Vajen, 2012
# Marc Richter <marc.richter.1982@gmail.com>, 2016
# dokterbob <mathijs@mathijsfietst.nl>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\n"
"PO-Revision-Date: 2018-06-22 10:33+0000\n"
"Last-Translator: Alexander Hartmann <ah@prexma.com>\n"
"Language-Team: German (http://www.transifex.com/dokterbob/django-newsletter/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Eintrag '%s' enthält keine gültige E-Mail-Adresse."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Das Adressfeld enthält doppelte Einträge für '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Einige Einträge sind bereits in der Liste enthalten."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Die E-Mail-Adresse %(email)s ist zu lang, die Maximallänge beträgt %(email_length)s Zeichen."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Der Name %(name)s ist zu lang, die Maximallänge beträgt %(name_length)s Zeichen."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr "Name"
#: addressimport/parsers.py:200
msgid "display"
msgstr "Anzeige"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Namensspalte nicht gefunden. Die Spaltenbezeichnung sollte entwerder 'name' oder '%s' lauten."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr "E-Mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Feld für E-Mail-Adresse nicht gefunden. Der Name der Spalte sollte entweder 'email', 'e-mail' oder '%(email)s' lauten."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Die Felder der CSV-Datei konnten nicht korrekt bestimmt werden. Es sollte ein Feld 'name' oder '%(name)s' und ein Feld 'e-mail' oder '%(e-mail)s' geben."
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Zeile mit Inhalt '%(row)s' enthält weder Name noch E-Mail-Adresse."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Ein Problem trat auf beim Einlesen der vCard-Datei: %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Eintrag '%s' enthält keine E-Mail-Adresse."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "Einige Einträge enthalten keine E-Mail-Adresse."
#: admin.py:79
msgid "Messages"
msgstr "Nachrichten"
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Abonnenten"
#: admin.py:87
msgid "Submissions"
msgstr "Ausgaben"
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr "Newsletter"
#: admin.py:117 models.py:555
msgid "submission"
msgstr "Ausgabe"
#: admin.py:124
msgid "publish date"
msgstr "Veröffentlichungsdatum"
#: admin.py:154
msgid "Sent."
msgstr "Versendet."
#: admin.py:157
msgid "Delayed submission."
msgstr "Verzögerte Ausgabe."
#: admin.py:159
msgid "Submitting."
msgstr "Wird versendet."
#: admin.py:161
msgid "Not sent."
msgstr "Nicht versendet."
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "Status"
#: admin.py:169
msgid "Submission already sent."
msgstr "Ausgabe wurde bereits verschickt."
#: admin.py:178
msgid "Your submission is being sent."
msgstr "Die Ausgabe wird versandt."
#: admin.py:225
msgid "Optional"
msgstr "Optional"
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr "Nachricht"
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Vorschau"
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Es wurde keine HTML-Vorlage für den Newsletter gefunden, zu dem diese Nachricht gehört."
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "Abonniert"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "Ausgetragen"
#: admin.py:388
msgid "Unactivated"
msgstr "noch nicht aktiviert"
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr "Abonnierungsdatum"
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr "Austragungsdatum"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] "%d Benutzer wurde erfolgreich hinzugefügt."
msgstr[1] "%d Benutzer wurden erfolgreich hinzugefügt."
#: admin.py:416
msgid "Subscribe selected users"
msgstr "Ausgewählte Abonnements aktivieren"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] "%d Benutzer wurde erfolgreich ausgetragen."
msgstr[1] "%d Benutzer wurden erfolgreich ausgetragen."
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "Ausgewählte Abonnements deaktivieren"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] "%d Abonnement wurde erfolgreich hinzugefügt."
msgstr[1] "%d Abonnements wurden erfolgreich hinzugefügt."
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Dateityp '%s' wurde nicht erkannt."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Die Dateiendung '%s' wurde nicht erkannt."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "Es wurden keine Einträge in dieser Datei gefunden."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:75
msgid "Address file"
msgstr "Adressdatei"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "Ignoriere nicht-schwerwiegende Fehler"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "Sie sollten den Vorgang bestätigen um fortzufahren."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Bestätigen Sie den Importierungsvorgang."
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "Falls ein Benutzer ausgewählt wurde, sollte dieses Feld leer bleiben."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "Es muss entweder ein Benutzer ausgewählt, oder eine Adresse vergeben werden."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Diese Nachricht wurde bereits durch eine andere Ausgabe im Archiv veröffentlicht. Nachrichten können aber nur einmal veröffentlicht werden."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objekt %(name)s mit Primärschlüssel %(key)r existiert nicht. "
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr "Ihre E-Mail-Adresse ist bereits eingetragen."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "Dieses Abonnement wurde noch nicht aktiviert."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "Diese E-Mail-Adresse ist nicht eingetragen."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "Dieses Abonnement wurde bereits gekündigt."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "Der Bestätigungsschlüssel stimmt nicht."
#: forms.py:139
msgid "Activation code"
msgstr "Aktivierungsschlüssel"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Verschicke Newsletter in Warteliste"
#: models.py:34
msgid "newsletter title"
msgstr "Newslettertitel"
#: models.py:39
msgid "Sender e-mail"
msgstr "Absenderadresse"
#: models.py:42
msgid "sender"
msgstr "Absender"
#: models.py:42
msgid "Sender name"
msgstr "Absendername"
#: models.py:46
msgid "visible"
msgstr "sichtbar"
#: models.py:50
msgid "send html"
msgstr "HTML verschicken"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Ob HTML-Versionen der E-Mails verschickt werden sollen."
#: models.py:103
msgid "newsletters"
msgstr "Newsletter"
#: models.py:159
msgid "user"
msgstr "Benutzer"
#: models.py:165
msgid "optional"
msgstr "optional"
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Abonnement %(subscription)s wurde aktualisiert durch \"%(action)s\"."
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Es ist weder eine E-Mail-Adresse noch ein Benutzername angegeben. Das schreit nach Inkonsistenz!"
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr "Wenn ein Benutzer angegeben ist, muss das Adressfeld leer bleiben (und umgekehrt)."
#: models.py:297
msgid "IP address"
msgstr "IP-Adresse"
#: models.py:306
msgid "activation code"
msgstr "Aktivierungsschlüssel"
#: models.py:311
msgid "subscribed"
msgstr "abonniert"
#: models.py:319
msgid "unsubscribed"
msgstr "ausgetragen"
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> bei %(newsletter)s"
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s bei %(newsletter)s"
#: models.py:340
msgid "subscription"
msgstr "Abonnement"
#: models.py:341
msgid "subscriptions"
msgstr "Abonnements"
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Sortierung legt fest, in welcher Reihenfolge die Artikel in der Nachricht zusammengefasst werden."
#: models.py:431
msgid "sort order"
msgstr "Sortierung"
#: models.py:434 models.py:476
msgid "title"
msgstr "Titel"
#: models.py:435
msgid "text"
msgstr "Text"
#: models.py:438
msgid "link"
msgstr "Link"
#: models.py:444
msgid "image"
msgstr "Bild"
#: models.py:456
msgid "article"
msgstr "Artikel"
#: models.py:457
msgid "articles"
msgstr "Artikel"
#: models.py:477
msgid "slug"
msgstr "Kurzform"
#: models.py:484
msgid "created"
msgstr "Erstellt"
#: models.py:487
msgid "modified"
msgstr "verändert"
#: models.py:492
msgid "messages"
msgstr "Nachrichten"
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s in %(newsletter)s"
#: models.py:556
msgid "submissions"
msgstr "Ausgaben"
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s vom %(publish_date)s"
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Verschicke %(submission)s an %(count)d Personen"
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr "Verschicke Nachricht an: %s."
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Nachricht %(subscription)s schlug fehl: %(error)s"
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr "Ausgabe der Nachricht %s"
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Falls Sie keine auswählen, wird das System automatisch Abonnenten auswählen."
#: models.py:711
msgid "recipients"
msgstr "Empfänger"
#: models.py:716
msgid "publication date"
msgstr "Veröffentlichungsdatum"
#: models.py:720
msgid "publish"
msgstr "veröffentlichen"
#: models.py:721
msgid "Publish in archive."
msgstr "Im Archiv einsehbar."
#: models.py:725
msgid "prepared"
msgstr "vorbereitet"
#: models.py:729
msgid "sent"
msgstr "Versendet"
#: models.py:733
msgid "sending"
msgstr "Sende"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Nachrichtenvorschau"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Startseite"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Nachricht"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Änderung"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Ausgabe erstellen"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Mitteilung"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Abschicken"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "Import"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Adressen importieren"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Bestätigen"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Hochladen"
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr "weiter lesen"
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr "Nachricht online lesen"
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Abmelden"
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr "Abmelden:"
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr "Angemeldet in %(title)s"
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Guten Tag %(name)s,\n\nSie, oder eine andere Person in Ihrem Namen hat die Anmeldung in %(title)s vorgenommen.\n\nWenn Sie die Anmeldung bestätigen möchten klicken Sie bitte auf folgenden Link:\nhttps://%(domain)s%(url)s\n\nMit freundlichen Grüßen"
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr "Anmeldung bestätigen"
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr "Abmelden von %(title)s"
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Guten Tag %(name)s,\n\nSie, oder eine andere Person in Ihrem Namen hat die Abmeldung von %(title)s vorgenommen .\n\nWenn Sie die Abmeldung bestätigen möchten klicken Sie bitte auf folgenden Link:\nhttps://%(domain)s%(url)s\n\nMit freundlichen Grüßen"
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr "Abmeldung bestätigen"
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr "Aktualisierung der Anmeldung in %(title)s"
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Guten Tag %(name)s,\n\nSie, oder eine andere Person in Ihrem Namen hat die Aktualisierung von %(title)s vorgenommen .\n\nWenn Sie die Aktualisierung bestätigen möchten klicken Sie bitte auf folgenden Link::\nhttps://%(domain)s%(url)s\n\nMit freundlichen Grüßen"
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr "Aktualisiere Information"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Newsletterdetails"
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Anmelden"
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr "Aktualisierung"
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr "Archiv"
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr "zurück zur Liste"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Newsletterliste"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Abonnements aktualisieren"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Newsletterarchiv"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "aktivieren"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Aktivieren"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Newsletter abonnieren"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Durch einen technischen Fehler konnte die Aktivierungsmail nicht verschickt wreden. Dies kann daran liegen, dass die E-Mail-Adresse ungültig ist."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Ihr Abonnement wurde erfolgreich aktiviert."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Dein Abonnement wurde erfolgreich entgegengenommen und eine E-Mail mit einem Bestätigungslink an dich verschickt. Dieser Bestätigungslink muss aufgerufen werden, um das Abonnement zu aktivieren."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Wollen Sie diesen Newsletter abonnieren?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Newsletter abbestellen"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Ihr Abonnement wurde erfolgreich gekündigt."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Die Kündigung deines Abonnements wurde erfolgreich entgegengenommen. Eine E-Mail mit einem Link zur Bestätigung deiner Kündigung wurde an verschickt."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Wollen sie das Abonnement dieses Newsletters kündigen?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Newsletter-Aktualisierung"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Abonnement aktualisieren"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Ihr Abonnement wurde erfolgreich aktualisiert."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Die Aktualisierung deines Abonnements wurde erfolgreich entgegengenommen und eine E-Mail verschickt. In dieser E-Mail befindet sich ein Link, den es aufzurufen gilt, um die Änderungen zu bestätigen."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Momentan:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Änderung:"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Die E-Mail-Adresse '%(email)s' ist mit einem Konto auf dieser Seite verknüpft. Bitte melden Sie sich mit diesem Konto an und versuchen Sie es erneut."
#: views.py:120
msgid "Your changes have been saved."
msgstr "Ihre Änderungen wurden gespeichert."
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr "Sie haben %s abonniert."
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Benutzer %(rs)s abonnierte %(my_newsletter)s."
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr "Sie haben %s bereits abonniert."
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Sie haben das Abonnement von %s gekündigt."
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Benutzer %(rs)s kündigte Abonnement von %(my_newsletter)s."
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr "Sie haben %s nicht abonniert."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Jannis Vajen, 2012
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: Jannis Vajen\n"
"Language-Team: German (http://www.transifex.com/dokterbob/django-newsletter/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Die Ausgabe wurde verändert. Vor dem Verschicken muss sie zunächst gespeichert werden. Klicken Sie auf OK um zu speichern, auf Abbrechen um mit dem Editieren fortzufahren."
@@ -0,0 +1,849 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# dokterbob <mathijs@mathijsfietst.nl>, 2018
# Sophocles Tsivides <sophocles.tsivides@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\n"
"PO-Revision-Date: 2018-03-25 19:06+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Greek (Greece) (http://www.transifex.com/dokterbob/django-newsletter/language/el_GR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Η καταχώρηση '%s' δεν περιέχει έγκυρη διεύθυνση e-mail."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Το αρχείο διευθύνσεων περιέχει διπλές καταχωρήσεις για '%s΄."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Ορισμένες καταχωρήσεις έχουν ήδη εγγραφεί."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Η διεύθυνση e-mail %(email)s είναι πολύ μεγάλη, το μέγιστος μήκος είναι %(email_length)s χαρακτήρες."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Το όνομα %(name)s είναι πολύ μεγάλο, το μέγιστος μήκος είναι %(name_length)s χαρακτήρες."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr "όνομα"
#: addressimport/parsers.py:200
msgid "display"
msgstr "προβολή"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Δεν βρέθηκε στήλη ονόματος. Το όνομα αυτής της στήλης πρέπει να είναι είτε 'όνομα' είτε '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Δεν βρέθηκε στήλη e-mail. Το όνομα αυτής της στήλης πρέπει να είναι είτε 'e-mail' είτε '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Δεν ήταν δυνατό να προσδιοριστούν σωστά οι στήλες στο αρχείο CSV. Πρέπει να υπάρχει ένα πεδίο που ονομάζεται 'όνομα' ή %(name)s και ένα που ονομάζεται 'e-mail' ή '%(e-mail)s'."
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Η σειρά με περιεχόμενο '%(row)s' δεν περιέχει πεδίο ονόματος και e-mail."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Σφάλμα ανάγνωσης αρχείου vCard: %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Η καταχώρηση '%s' δεν περιέχει διεύθυνση e-mail."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "Ορισμένες καταχωρήσεις δεν έχουν διεύθυνση e-mail."
#: admin.py:79
msgid "Messages"
msgstr "Μηνύματα"
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Συνδρομές"
#: admin.py:87
msgid "Submissions"
msgstr "Υποβολές"
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr "ενημερωτικό δελτίο"
#: admin.py:117 models.py:555
msgid "submission"
msgstr "υποβολή"
#: admin.py:124
msgid "publish date"
msgstr "ημερομηνία δημοσίευσης"
#: admin.py:154
msgid "Sent."
msgstr "Απεστάλη."
#: admin.py:157
msgid "Delayed submission."
msgstr "Καθυστερημένη υποβολή."
#: admin.py:159
msgid "Submitting."
msgstr "Υποβολή."
#: admin.py:161
msgid "Not sent."
msgstr "Δεν απεστάλη."
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "Κατάσταση"
#: admin.py:169
msgid "Submission already sent."
msgstr "Η υποβολή έχει ήδη σταλεί."
#: admin.py:178
msgid "Your submission is being sent."
msgstr "Η υποβολή σας αποστέλλεται."
#: admin.py:225
msgid "Optional"
msgstr "Προαιρετικό"
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr "μήνυμα"
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Προεπισκόπηση"
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Δεν υπάρχει πρότυπο HTML που να σχετίζεται με το newsletter στο οποίο ανήκει αυτό το μήνυμα."
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "Εγγεγραμμένος"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "Έχει διαγραφεί"
#: admin.py:388
msgid "Unactivated"
msgstr "Μη ενεργοποιημένος"
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr "ημερομηνία εγγραφής"
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr "ημερομηνία διαγραφής"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] " %dχρήστες έχουν εγγραφεί επιτυχώς. "
msgstr[1] " %dχρήστες έχουν εγγραφεί επιτυχώς."
#: admin.py:416
msgid "Subscribe selected users"
msgstr "Εγγραφή επιλεγμένων χρηστών"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] "%dχρήστες έχουν διαγραφεί επιτυχώς. "
msgstr[1] "%dχρήστες έχουν διαγραφεί επιτυχώς. "
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "Διαγραφή επιλεγμένων χρηστών"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] "%d συνδρομές προστέθηκαν επιτυχώς."
msgstr[1] "%d συνδρομές προστέθηκαν επιτυχώς."
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Ο τύπος αρχείου '%s' δεν αναγνωρίστηκε."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Η επέκταση αρχείου '%s' δεν αναγνωρίστηκε."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "Σε αυτό το αρχείο δεν βρέθηκαν καταχωρήσεις."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:75
msgid "Address file"
msgstr "Διεύθυνση αρχείου"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "Αγνοήστε τα μη μοιραία σφάλματα"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "Θα πρέπει να επιβεβαιώσετε για να συνεχίσετε."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Επιβεβαίωση εισαγωγής"
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "Εάν έχει επιλεγεί χρήστης, αυτό το πεδίο πρέπει να παραμείνει κενό."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "Πρέπει να επιλεγεί ένας χρήστης ή να οριστεί μια διεύθυνση e-mail."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Αυτό το μήνυμα έχει ήδη δημοσιευθεί σε κάποια άλλη υποβολή. Τα μηνύματα μπορούν να δημοσιεύονται μόνο μία φορά."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s αντικείμενο με πρωτεύον κλειδί %(key)r δεν υπάρχει."
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr "Η διεύθυνση e-mail σας έχει ήδη εγγραφεί."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "Αυτή η συνδρομή δεν έχει ενεργοποιηθεί ακόμα."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "Αυτή η διεύθυνση e-mail δεν έχει εγγραφεί."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "Αυτή η συνδρομή έχει ήδη διαγραφεί."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "Ο κωδικός επικύρωσης που εισήχθη από εσάς δεν ταιριάζει."
#: forms.py:139
msgid "Activation code"
msgstr "Κωδικός ενεργοποίησης"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Υποβολή ουράς αναμονής αποστολής newsletter"
#: models.py:34
msgid "newsletter title"
msgstr "τίτλος newsletter"
#: models.py:39
msgid "Sender e-mail"
msgstr "E-mail αποστολέα"
#: models.py:42
msgid "sender"
msgstr "αποστολέας"
#: models.py:42
msgid "Sender name"
msgstr "Όνομα αποστολέα"
#: models.py:46
msgid "visible"
msgstr "ορατό"
#: models.py:50
msgid "send html"
msgstr "αποστολή html"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Να αποστέλλονται ή όχι e-mails σε έκδοση HTML."
#: models.py:103
msgid "newsletters"
msgstr "newsletters"
#: models.py:159
msgid "user"
msgstr "χρήστης"
#: models.py:165
msgid "optional"
msgstr "προαιρετικό"
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Ενημερώθηκε η συνδρομή %(subscription)s σε %(action)s."
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Δεν έχει οριστεί ούτε e-mail ούτε ένα όνομα χρήστη. Αυτό είναι ασυνέπεια!"
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr "Εάν έχει οριστεί χρήστης, το e-mail πρέπει να είναι κενό και αντίστροφα."
#: models.py:297
msgid "IP address"
msgstr "Διεύθυνση IP"
#: models.py:306
msgid "activation code"
msgstr "κωδικός ενεργοποίησης"
#: models.py:311
msgid "subscribed"
msgstr "εγγεγραμμένος"
#: models.py:319
msgid "unsubscribed"
msgstr "διαγραμμένος"
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s<%(email)s σε %(newsletter)s"
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s σε %(newsletter)s"
#: models.py:340
msgid "subscription"
msgstr "συνδρομή"
#: models.py:341
msgid "subscriptions"
msgstr "συνδρομές"
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Η σειρά ταξινόμησης καθορίζει τη σειρά με την οποία τα άρθρα συνδέονται σε μια δημοσίευση."
#: models.py:431
msgid "sort order"
msgstr "σειρά ταξινόμησης"
#: models.py:434 models.py:476
msgid "title"
msgstr "τίτλος"
#: models.py:435
msgid "text"
msgstr "κείμενο"
#: models.py:438
msgid "link"
msgstr "σύνδεσμος"
#: models.py:444
msgid "image"
msgstr "εικόνα"
#: models.py:456
msgid "article"
msgstr "άρθρο"
#: models.py:457
msgid "articles"
msgstr "άρθρα"
#: models.py:477
msgid "slug"
msgstr "τίτλος"
#: models.py:484
msgid "created"
msgstr "δημιουργήθηκε"
#: models.py:487
msgid "modified"
msgstr "τροποποιήθηκε"
#: models.py:492
msgid "messages"
msgstr "μηνύματα"
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s σε %(newsletter)s"
#: models.py:556
msgid "submissions"
msgstr "υποβολές"
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s σε %(publish_date)s"
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Υποβάλλονται %(submission)s σε %(count)d άτομα"
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr "Υποβολή μηνύματος σε: %s."
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Το μήνυμα %(subscription)sαπέτυχε με σφάλμα: %(error)s"
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr "Υποβολή μηνύματος %s"
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Εάν δεν επιλέξετε κανένα, το σύστημα θα εντοπίσει αυτόματα τους συνδρομητές για εσάς."
#: models.py:711
msgid "recipients"
msgstr "παραλήπτες"
#: models.py:716
msgid "publication date"
msgstr "ημερομηνία δημοσίευσης"
#: models.py:720
msgid "publish"
msgstr "δημοσίευση"
#: models.py:721
msgid "Publish in archive."
msgstr "Δημοσίευση στο αρχείο."
#: models.py:725
msgid "prepared"
msgstr "ετοιμάστηκε"
#: models.py:729
msgid "sent"
msgstr "απεστάλη"
#: models.py:733
msgid "sending"
msgstr "αποστέλλεται"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Προεπισκόπηση μηνύματος"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Κεντρική σελίδα"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Μήνυμα"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Αλλαγή"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Δημιουργία υποβολής"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Κείμενο"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Υποβολή"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "Εισαγωγή"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Εισαγωγή διευθύνσεων"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Επιβεβαίωση"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Μεταφόρτωση"
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr ""
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr ""
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Διαγραφή"
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr ""
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr ""
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr ""
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr ""
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr ""
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr ""
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr ""
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Λεπτομέρειες newsletter"
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Εγγραφή"
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr ""
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr ""
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr ""
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Λίστα newsletter"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Ενημέρωση συνδρομών"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Αρχείο newsletter"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "ενεργοποίηση"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Ενεργοποίηση"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Εγγραφή στο newsletter"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Λόγω τεχνικού σφάλματος, δεν ήταν δυνατή η υποβολή του e-mail επιβεβαίωσης. Αυτό μπορεί να οφείλεται στο γεγονός ότι η διεύθυνση e-mail σας δεν είναι έγκυρη."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Η συνδρομή σας έχει ενεργοποιηθεί με επιτυχία."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Το αίτημα συνδρομής σας λήφθηκε με επιτυχία και εστάλη e-mail ενεργοποίησης. Σε αυτό το e-mail θα βρείτε έναν σύνδεσμο που πρέπει να ακολουθήσετε για να ενεργοποιήσετε τη συνδρομή σας."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Θέλετε να εγγραφείτε σε αυτό το newsletter;"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Διαγραφή από το newsletter"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Έχετε καταργήσει την εγγραφή σας με επιτυχία."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Το αίτημά σας για κατάργηση εγγραφής έχει ληφθεί με επιτυχία. Σας έχει σταλεί ένα e-mail με έναν σύνδεσμο που πρέπει να ακολουθήσετε για να επιβεβαιώσετε την κατάργηση της εγγραφής σας."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Θέλετε να διαγραφείτε από αυτό το newsletter;"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Ενημέρωση newsletter"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Ενημέρωση συνδρομής"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Η συνδρομή σας έχει ενημερωθεί με επιτυχία."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Η αίτησή σας για ενημέρωση λήφθηκε με επιτυχία και εστάλη ένα e-mail ενεργοποίησης. Σε αυτό το e-mail θα βρείτε έναν σύνδεσμο που πρέπει να ακολουθήσετε για να ενημερώσετε τη συνδρομή σας."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Επί του παρόντος:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Αλλαγή:"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Η διεύθυνση e-mail '%(email)s' ανήκει σε χρήστη με λογαριασμό σε αυτόν τον ιστότοπο. Συνδεθείτε ως αυτός ο χρήστης και δοκιμάστε ξανά."
#: views.py:120
msgid "Your changes have been saved."
msgstr "Οι αλλαγές σας έχουν αποθηκευτεί."
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr "Έχετε εγγραφεί στο %s."
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Ο χρήστης %(rs)sέχει εγγραφεί στο %(my_newsletter)s."
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr "Έχετε ήδη εγγραφεί στο %s."
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Έχετε καταργηθεί η εγγραφή από το %s."
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Ο χρήστης %(rs)sέχει διαγραφεί από το %(my_newsletter)s."
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr "Δεν έχετε εγγραφεί στο %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Sophocles Tsivides <sophocles.tsivides@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2017-09-23 17:24+0000\n"
"Last-Translator: Sophocles Tsivides <sophocles.tsivides@gmail.com>\n"
"Language-Team: Greek (Greece) (http://www.transifex.com/dokterbob/django-newsletter/language/el_GR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Η υποβολή έχει αλλάξει. Πρέπει να αποθηκευτεί πριν μπορέσετε να υποβάλετε. Κάντε κλικ στο OK για να προχωρήσετε στην αποθήκευση, κάντε κλικ στο κουμπί ακύρωση για να συνεχίσετε την επεξεργασία."
@@ -0,0 +1,850 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr ""
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr ""
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr ""
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr ""
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr ""
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr ""
#: addressimport/parsers.py:200
msgid "display"
msgstr ""
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr ""
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr ""
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr ""
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr ""
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr ""
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr ""
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr ""
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr ""
#: admin.py:79
msgid "Messages"
msgstr ""
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr ""
#: admin.py:87
msgid "Submissions"
msgstr ""
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr ""
#: admin.py:117 models.py:555
msgid "submission"
msgstr ""
#: admin.py:124
msgid "publish date"
msgstr ""
#: admin.py:154
msgid "Sent."
msgstr ""
#: admin.py:157
msgid "Delayed submission."
msgstr ""
#: admin.py:159
msgid "Submitting."
msgstr ""
#: admin.py:161
msgid "Not sent."
msgstr ""
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr ""
#: admin.py:169
msgid "Submission already sent."
msgstr ""
#: admin.py:178
msgid "Your submission is being sent."
msgstr ""
#: admin.py:225
msgid "Optional"
msgstr ""
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr ""
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr ""
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr ""
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr ""
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr ""
#: admin.py:388
msgid "Unactivated"
msgstr ""
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr ""
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr ""
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] ""
msgstr[1] ""
#: admin.py:416
msgid "Subscribe selected users"
msgstr ""
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] ""
msgstr[1] ""
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr ""
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] ""
msgstr[1] ""
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr ""
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr ""
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr ""
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr ""
#: admin_forms.py:75
msgid "Address file"
msgstr ""
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr ""
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr ""
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr ""
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr ""
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr ""
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr ""
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr ""
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr ""
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr ""
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr ""
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr ""
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr ""
#: forms.py:139
msgid "Activation code"
msgstr ""
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr ""
#: models.py:34
msgid "newsletter title"
msgstr ""
#: models.py:39
msgid "Sender e-mail"
msgstr ""
#: models.py:42
msgid "sender"
msgstr ""
#: models.py:42
msgid "Sender name"
msgstr ""
#: models.py:46
msgid "visible"
msgstr ""
#: models.py:50
msgid "send html"
msgstr ""
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr ""
#: models.py:103
msgid "newsletters"
msgstr ""
#: models.py:159
msgid "user"
msgstr ""
#: models.py:165
msgid "optional"
msgstr ""
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr ""
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr ""
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr ""
#: models.py:297
msgid "IP address"
msgstr ""
#: models.py:306
msgid "activation code"
msgstr ""
#: models.py:311
msgid "subscribed"
msgstr ""
#: models.py:319
msgid "unsubscribed"
msgstr ""
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr ""
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr ""
#: models.py:340
msgid "subscription"
msgstr ""
#: models.py:341
msgid "subscriptions"
msgstr ""
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a post."
msgstr ""
#: models.py:431
msgid "sort order"
msgstr ""
#: models.py:434 models.py:476
msgid "title"
msgstr ""
#: models.py:435
msgid "text"
msgstr ""
#: models.py:438
msgid "link"
msgstr ""
#: models.py:444
msgid "image"
msgstr ""
#: models.py:456
msgid "article"
msgstr ""
#: models.py:457
msgid "articles"
msgstr ""
#: models.py:477
msgid "slug"
msgstr ""
#: models.py:484
msgid "created"
msgstr ""
#: models.py:487
msgid "modified"
msgstr ""
#: models.py:492
msgid "messages"
msgstr ""
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr ""
#: models.py:556
msgid "submissions"
msgstr ""
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr ""
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr ""
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr ""
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr ""
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr ""
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr ""
#: models.py:711
msgid "recipients"
msgstr ""
#: models.py:716
msgid "publication date"
msgstr ""
#: models.py:720
msgid "publish"
msgstr ""
#: models.py:721
msgid "Publish in archive."
msgstr ""
#: models.py:725
msgid "prepared"
msgstr ""
#: models.py:729
msgid "sent"
msgstr ""
#: models.py:733
msgid "sending"
msgstr ""
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr ""
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr ""
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr ""
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr ""
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr ""
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr ""
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr ""
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr ""
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr ""
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr ""
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr ""
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr ""
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr ""
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr ""
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr ""
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr ""
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr ""
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this "
"activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr ""
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr ""
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this "
"activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr ""
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr ""
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information "
"for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this "
"activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr ""
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr ""
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr ""
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr ""
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr ""
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr ""
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr ""
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr ""
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr ""
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr ""
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr ""
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr ""
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr ""
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email. "
"This could be because your email address is invalid."
msgstr ""
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr ""
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr ""
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr ""
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr ""
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr ""
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr ""
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr ""
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr ""
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr ""
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr ""
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr ""
#: templates/widget/image.html:2
msgid "Currently:"
msgstr ""
#: templates/widget/image.html:4
msgid "Change:"
msgstr ""
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr ""
#: views.py:120
msgid "Your changes have been saved."
msgstr ""
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr ""
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr ""
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr ""
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr ""
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr ""
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr ""
@@ -0,0 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\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=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr ""
@@ -0,0 +1,853 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Alex Santos <alexsnavas@gmail.com>, 2013
# Dehivis Perez <dperez@unerg.edu.ve>, 2015
# Diamo Rafaela <contacto@diamo.com.ar>, 2016
# hernantz <hernantz@gmail.com>, 2013
# Javi Palanca <jpalanca@dsic.upv.es>, 2017-2018
# Jorge Cuaron <kerloom@yahoo.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\n"
"PO-Revision-Date: 2018-03-19 10:35+0000\n"
"Last-Translator: Javi Palanca <jpalanca@dsic.upv.es>\n"
"Language-Team: Spanish (http://www.transifex.com/dokterbob/django-newsletter/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "La entrada '%s' no contiene una dirección de email válida."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "El archivo de direcciones contiene entradas duplicadas para '%s'"
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Algunas entradas ya están suscritas."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Dirección de e-mail %(email)s demasiado larga, el máximo es de %(email_length)s caracteres."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Nombre %(name)s demasiado largo, el máximo es de %(name_length)s caracteres."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr "nombre"
#: addressimport/parsers.py:200
msgid "display"
msgstr "mostrar"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "No se encuentra el nombre de columna. El nombre de esta columna debe ser 'name' o '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "La columna e-mail no se encuentra. El nombre de esta columna debe ser 'email', 'e-mail' o '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "No se pudo determinar adecuadamente las columnas apropiadas en el archivo CSV. Debe haber un campo llamado 'nombre' o '%(name)s' y uno llamado \"e-mail\" o \"%(e-mail)s '."
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "La fila con el contenido '%(row)s' no contiene un campo de nombre y email."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Error leyendo archivo vCard: %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "La entrada '%s' no contiene una dirección de email."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "Algunas entradas no tienen dirección de email."
#: admin.py:79
msgid "Messages"
msgstr "Mensajes"
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Suscripciones"
#: admin.py:87
msgid "Submissions"
msgstr "Envíos"
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr "boletín de noticias"
#: admin.py:117 models.py:555
msgid "submission"
msgstr "envío"
#: admin.py:124
msgid "publish date"
msgstr "fecha de publicación"
#: admin.py:154
msgid "Sent."
msgstr "Enviado."
#: admin.py:157
msgid "Delayed submission."
msgstr "Envío aplazado."
#: admin.py:159
msgid "Submitting."
msgstr "Enviando."
#: admin.py:161
msgid "Not sent."
msgstr "No enviado."
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "Estado"
#: admin.py:169
msgid "Submission already sent."
msgstr "Envío ya enviado."
#: admin.py:178
msgid "Your submission is being sent."
msgstr "Tu envío está siendo enviado."
#: admin.py:225
msgid "Optional"
msgstr "Opcional"
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr "mensaje"
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Vista previa"
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "No hay una plantilla HTML asociada al boletín de noticias al que pertenece este mensaje."
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "Suscrito"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "Eliminado"
#: admin.py:388
msgid "Unactivated"
msgstr "Desactivado"
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr "fecha de suscripción"
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr "fecha de baja"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] "%d usuario se ha suscrito con éxito."
msgstr[1] "%d usuarios se han suscrito con éxito."
#: admin.py:416
msgid "Subscribe selected users"
msgstr "Suscribir usuarios seleccionados"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] "%d usuario se ha dado de baja con éxito. "
msgstr[1] "%d usuarios se han dado de baja con éxito."
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "Dar de baja usuarios seleccionados"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] "%d suscripción se ha añadido con éxito. "
msgstr[1] "%d suscripciones se han añadido con éxito."
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Tipo de archivo '%s' no fue reconocido."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "La extensión de archivo '%s' no fue reconocida."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "No se encontraron entradas en este archivo."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Boletín de Noticias"
#: admin_forms.py:75
msgid "Address file"
msgstr "Archivo de direcciones"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "Ignorar errores no fatales"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "Debes confirmar para poder continuar."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Confirmar importación"
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "Si un usuario ha sido seleccionado este campo debería permanecer vacío."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "O bien un usuario debe ser seleccionado o una dirección de correo debe ser especificada."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Este mensaje ya ha sido publicado en otra publicación. Los mensajes solo pueden ser publicados una sola vez."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "El objeto %(name)s con clave primaria %(key)r no existe."
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr "Su dirección de e-mail ya ha sido suscrita."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "Tu suscripción no ha sido activada todavía."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "Esta dirección de correo electrónico no ha sido suscrita."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "Esta suscripción ya se ha cancelado."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "El código de validación introducido por usted no coincide."
#: forms.py:139
msgid "Activation code"
msgstr "Código de activación"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Enviando emails en cola del boletín de noticias."
#: models.py:34
msgid "newsletter title"
msgstr "título del boletín de noticias"
#: models.py:39
msgid "Sender e-mail"
msgstr "Correo del remitente"
#: models.py:42
msgid "sender"
msgstr "remitente"
#: models.py:42
msgid "Sender name"
msgstr "Nombre del remitente"
#: models.py:46
msgid "visible"
msgstr "visible"
#: models.py:50
msgid "send html"
msgstr "enviar html"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Enviar o no las versiones HTML de los correos."
#: models.py:103
msgid "newsletters"
msgstr "boletines de noticias"
#: models.py:159
msgid "user"
msgstr "usuario"
#: models.py:165
msgid "optional"
msgstr "opcional"
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Suscripción %(subscription)s editada a %(action)s."
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Ni el email ni el nombre del usuario han sido introducidos. ¡Esto puede provocar inconsistencias!"
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr "Si el usuario está especificado, el campo email debe estar vacío y viceversa."
#: models.py:297
msgid "IP address"
msgstr "Dirección IP"
#: models.py:306
msgid "activation code"
msgstr "código de activación"
#: models.py:311
msgid "subscribed"
msgstr "suscrito"
#: models.py:319
msgid "unsubscribed"
msgstr "eliminado"
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> a %(newsletter)s"
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s a %(newsletter)s"
#: models.py:340
msgid "subscription"
msgstr "suscripción"
#: models.py:341
msgid "subscriptions"
msgstr "suscripciones"
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "El orden de clasificación determina el orden en el que los artículos se concatenan en una publicación."
#: models.py:431
msgid "sort order"
msgstr "Orden de clasificación"
#: models.py:434 models.py:476
msgid "title"
msgstr "título"
#: models.py:435
msgid "text"
msgstr "texto"
#: models.py:438
msgid "link"
msgstr "enlace"
#: models.py:444
msgid "image"
msgstr "imagen"
#: models.py:456
msgid "article"
msgstr "artículo"
#: models.py:457
msgid "articles"
msgstr "artículos"
#: models.py:477
msgid "slug"
msgstr "slug"
#: models.py:484
msgid "created"
msgstr "creado"
#: models.py:487
msgid "modified"
msgstr "modificado"
#: models.py:492
msgid "messages"
msgstr "mensajes"
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s en %(newsletter)s"
#: models.py:556
msgid "submissions"
msgstr "envios"
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s en %(publish_date)s"
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Enviando %(submission)s a %(count)d personas"
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr "Enviando mensaje a %s."
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "El mensaje %(subscription)s falló con el error: %(error)s"
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr "Envío del mensaje %s"
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Si no selecciona ninguno, el sistema automaticamente buscará los suscriptores por usted."
#: models.py:711
msgid "recipients"
msgstr "destinatarios"
#: models.py:716
msgid "publication date"
msgstr "fecha de publicación"
#: models.py:720
msgid "publish"
msgstr "publicar"
#: models.py:721
msgid "Publish in archive."
msgstr "Publicar en archivo."
#: models.py:725
msgid "prepared"
msgstr "preparado"
#: models.py:729
msgid "sent"
msgstr "enviado"
#: models.py:733
msgid "sending"
msgstr "enviando"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Previsualizar el mensaje"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Inicio"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Mensaje"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Cambiar"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Crear suscripción"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Texto"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Enviar"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "Importar"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importar direcciones"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Confirmar"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Subir"
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr "Leer más"
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr "Leer mensaje online"
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Dar de baja"
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr "Cancelar suscripción:"
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr "Suscripción a %(title)s"
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Estimado %(name)s,\n\nusted o alguien en su nombre solicitó una suscripción a %(title)s.\n\nSi desea confirmar su suscripción, siga este enlace de activación: \nhttp://%(domain)s%(url)s\n\nSaludos cordiales,"
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr "Confirmar suscripción"
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr "Baja de la suscripción de %(title)s"
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Estimado %(name)s,\n\nusted, o alguien en su nombre, ha solicitado darse de baja de %(title)s.\n\nSi desea confirmar su baja, siga este enlace de activación: \nhttp://%(domain)s%(url)s\n\nSaludos cordiales,"
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr "Confirmar la cancelación de la suscripción"
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr "Actualización de la suscripción a %(title)s"
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Estimado %(name)s,\n\nusted, o alguien en su nombre solicitó actualizar su información personal para %(title)s.\n\nPara hacer cambios a su información en nuestra base de datos, por favor siga este enlace de activación: \nhttp://%(domain)s%(url)s\n\nSaludos cordiales,"
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr "Actualizar información"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Detalle de Boletín de Noticias"
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Suscribirse"
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr "Actualizar"
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr "Archivar"
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr "Volver al listado"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Lista de Boletines de Noticias"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Actualizar suscripciones"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Archivo de Boletín de Noticias"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "activar"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Activar"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Suscribirse al boletín de noticias"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Por un problema técnico no hemos podido enviar su correo de confirmación. Esto puede ser porque su correo electrónico es inválido."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Su suscripción se ha activado con éxito."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Tu petición de suscripción ha sido recibida y se te ha enviado un correo. En dicho correo encontrarás un enlace que debes seguir para activar tu suscripción."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "¿Desea suscribirse a este Boletín de Noticias?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Baja de boletín de noticias"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Te has dado de baja con éxito."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Tu petición de baja ha sido recibida. Un correo ha sido enviado con un enlace que debes seguir para confirmar tu baja."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "¿Desea darse de baja de este Boletín de Noticias?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Actualización de Boletín de Noticias"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Actualizar suscripción"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Tu suscripción ha sido actualizada con éxito."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Tu petición de actualización ha sido recibida y se te ha enviado un correo. En dicho correo encontrarás un enlace que debes seguir para confirmar la actualización de tu subscripción."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Actualmente:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Cambiar:"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "La dirección de correo electrónico '%(email)s' pertenece a un usuario con una cuenta en este sitio. Por favor, inicie sesión como ese usuario y vuelva a intentarlo."
#: views.py:120
msgid "Your changes have been saved."
msgstr "Sus cambios han sido guardados."
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr "Te has suscrito a %s."
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "El usuario %(rs)s se suscribió a %(my_newsletter)s."
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr "Ya esta suscrito a %s."
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Te has dado de baja de %s."
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Usuario %(rs)s dado de baja de %(my_newsletter)s."
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr "No estás suscrito a %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Diamo Rafaela <contacto@diamo.com.ar>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2016-05-07 13:56+0000\n"
"Last-Translator: Diamo Rafaela <contacto@diamo.com.ar>\n"
"Language-Team: Spanish (http://www.transifex.com/dokterbob/django-newsletter/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Este envío fue modificado. Se debe guardar antes de que puedas enviarlo. Haz click en el botón de OK para proceder a guardar, haz click en cancelar para continuar editando."
@@ -0,0 +1,780 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Ali Javadi <rohamn@hotmail.com>, 2013
# arian hedayati far <arian.hedayatifar@gmail.com>, 2016
# hooman zabeti <hoomanzabeti@gmail.com>, 2013
# dokterbob <mathijs@mathijsfietst.nl>, 2016
# Mohammad Hossein Mojtahedi <Mhm5000@gmail.com>, 2014
# mohsen rbb <mohsenrbb@yahoo.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-03-22 19:20+0000\n"
"Last-Translator: arian hedayati far <arian.hedayatifar@gmail.com>\n"
"Language-Team: Persian (http://www.transifex.com/dokterbob/django-newsletter/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "ورودی '%s' دارای آدرس ایمیل معتبر نمی باشد."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "آدرس فایل شامل نوشته های تکراری برای '%s' است."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "بعضی از ورودی‌ها هم‌اکنون عضو هستند."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "آدرس ایمیل %(email)s بسیار بلند است، حداکثر %(email_length)s کاراکتر پذیرفته می‌شود."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "نام %(name)s بسیار بلند است، حداکثر %(name_length)s کاراکتر پذیرفته می‌شود."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "نام"
#: addressimport/parsers.py:200
msgid "display"
msgstr "نمایش"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "نام این ستون پیدا نشده است.نام این ستون می بایست 'name' یا '%s' باشد"
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "ایمیل"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "ستون ایمیل پیدا نشد.نام این ستون می بایست 'email','e-mail' یا '%(email) s'باشد"
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "سیستم به‌درستی نمی‌تواند ستون‌های فایل سی‌اس‌وی را تشخیص دهد. در فایل باید یک ستون به نام 'name' یا '%(name)s' و ستونی به نام 'e-mail' یا '%(e-mail)s' وجود داشته باشند."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "ردیف '%(row)s' دارای فیلد نام و ایمیل نمی باشد."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "خطای خواندن فایل vCard: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "ورودی '%s' حاوی آدرس ایمیل نمی باشد."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "برخی از ورودی ها حاوی آدرس ایمیل نمی باشند."
#: admin.py:63
msgid "Messages"
msgstr "پیام‌ها"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "عضویت"
#: admin.py:77
msgid "Submissions"
msgstr "ارسال"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "ارسال"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "خبرنامه"
#: admin.py:112
msgid "publish date"
msgstr "تاریخ انتشار"
#: admin.py:138
msgid "Sent."
msgstr "فرستاده شده"
#: admin.py:141
msgid "Delayed submission."
msgstr "ارسال با تأخیر"
#: admin.py:143
msgid "Submitting."
msgstr "ارسال."
#: admin.py:145
msgid "Not sent."
msgstr "فرستاده نشده"
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "وضعیت"
#: admin.py:153
msgid "Submission already sent."
msgstr "ارسال انجام شد."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "ارسال انجام شد."
#: admin.py:208
msgid "Optional"
msgstr "انتخابی"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "پیام"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "پیش‌نمایش"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "هیچ نمونه اچ‌تی‌ام‌الی برای خبرنامه‌ای که این پیام متعلق به آن است، موجود نیست."
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "عضو شده"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "لغو عضویت شده"
#: admin.py:389
msgid "Unactivated"
msgstr "غیر فعال"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "تاریخ عضویت"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "تاریخ لغو عضویت"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s کاربر با موفقیت عضو شده‌اند."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "کاربران انتخاب شده را عضو نمایید."
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s کاربر با موفقیت عضویت خود را لغو کرده‌اند."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "عضویت کاربران انتخاب شده را لغو کنید"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s عضویت به صورت موفقیت آمیز اضافه شد."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "نوع فایل '%s' قابل شناسایی نمی باشد."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "پسوند فایل '%s' قابل شناسایی نمی باشد."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "دراین فایل هیچ ورودی پیدا نشد."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "خبرنامه"
#: admin_forms.py:73
msgid "Address file"
msgstr "فایل آدرس"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "نادیده گرفتن خطاهای غیراساسی"
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "شما قبل از اینکه ادامه دهید باید تأیید کنید"
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "تأیید ورود اطلاعات"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "اگر کاربری این فیلد را انتخاب کرده باشد باید خالی بماند."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "یک کاربر یا یک ایمیل باید انتخاب شود."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "این پیام در یکی از ارسال های گذشته استفاده شده.هر پیام تنها یک بار قابلیت نشر را دارد."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s شی با کلید اساسی %(key)r وجود ندارد."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "آدرس ایمیل اجباری است"
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "این آدرس ایمیل '%(email)s' متعلق به یکی از اعضاء سایت می باشد.در صورتی که این اشتراک متعلق به شماست لطفا با آن وارد شوید"
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "آدرس ایمیل شما عضو این خبرنامه است."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "این عضویت هنوز فعال نشده است."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "این آدرس ایمیل متعلق به کاربر '%(username)s' می باشد. اگر این نام کاربری به شما تعلق دارد لطفا با آن وارد شوید."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "این آدرس ایمیل عضو این خبرنامه نیست."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "این عضویت لغو شده است"
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "کد اعتباری که توسط شما ارایه شده است"
#: forms.py:169
msgid "Activation code"
msgstr "کد فعال‌سازی"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "ارسال نامه صف خبرنامه"
#: models.py:32
msgid "newsletter title"
msgstr "عنوان خبرنامه"
#: models.py:37
msgid "Sender e-mail"
msgstr "ایمیل ارسال کننده"
#: models.py:40
msgid "sender"
msgstr "فرستنده"
#: models.py:40
msgid "Sender name"
msgstr "نام فرستنده"
#: models.py:44
msgid "visible"
msgstr "نمایان"
#: models.py:48
msgid "send html"
msgstr "ارسال html"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "نخسه های html ایمیل نیز ارسال شود."
#: models.py:101
msgid "newsletters"
msgstr "خبرنامه‌ها"
#: models.py:157
msgid "user"
msgstr "کاربر"
#: models.py:162
msgid "optional"
msgstr "انتخابی"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr ""
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "نه ایمیل و نه نام کاربری انتخاب نشده است. "
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "اگر کاربر انتخاب شود، ایمیل باید خالی باشد و بر عکس."
#: models.py:294
msgid "IP address"
msgstr "آدرس آی‌پی"
#: models.py:301
msgid "activation code"
msgstr "کد فعال‌سازی"
#: models.py:306
msgid "subscribed"
msgstr "عضو شده"
#: models.py:314
msgid "unsubscribed"
msgstr "لغو عضویت شده"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> به %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s به %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "اشتراک"
#: models.py:336
msgid "subscriptions"
msgstr "اشتراک ها"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "روش مرتب کردن مشخص می کند روش پشت سر هم گذاشتن مقالات چگونه باشد."
#: models.py:441
msgid "sort order"
msgstr "مرتب کردن بر اساس"
#: models.py:444 models.py:483
msgid "title"
msgstr "عنوان"
#: models.py:445
msgid "text"
msgstr "متن"
#: models.py:448
msgid "link"
msgstr "لینک"
#: models.py:454
msgid "image"
msgstr "تصویر"
#: models.py:465
msgid "article"
msgstr "مقاله"
#: models.py:466
msgid "articles"
msgstr "مقالات"
#: models.py:484
msgid "slug"
msgstr "نام ماشینی"
#: models.py:491
msgid "created"
msgstr "تولید شده"
#: models.py:494
msgid "modified"
msgstr "ویرایش شده"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s در%(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "پیام "
#: models.py:538
msgid "submissions"
msgstr "ارسالی"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s در %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "ارسال %(submission)s به %(count)d نفر"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "ارسال پیام به: %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "پیام %(subscription)s به علت مشکل %(error)s ارسال نشد"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "پیام های ارسالی %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "اگر شما گزینه ی هیچکدام را انتخاب کنید،سیستم به صورت خودکار اشتراکی را برای شما پیدا می کند"
#: models.py:675
msgid "recipients"
msgstr "دریافت کنندگان"
#: models.py:680
msgid "publication date"
msgstr "تاریخ انتشار"
#: models.py:684
msgid "publish"
msgstr "انتشار"
#: models.py:685
msgid "Publish in archive."
msgstr "انتشار در ارشیو"
#: models.py:689
msgid "prepared"
msgstr "مهیا"
#: models.py:693
msgid "sent"
msgstr "ارسال شده "
#: models.py:697
msgid "sending"
msgstr "در حال ارسال"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "تاریخچه"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "نمایش در سایت"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "پیش نمایش پیام"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "خانه"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "پیام"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "ویرایش"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "ایجاد شماره‌ی جدید خبرنامه"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "اچ‌تی‌ام‌ال"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "متن"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "ثبت"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "ورود"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "اضافه‌کردن %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "ورود آدرس‌ها"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "تأیید"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "بارگذاری"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "جزئیات خبرنامه"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "لیست خبرنامه‌ها"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "عضویت"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "بروز رسانی اشتراک ها"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "آرشیو خبرنامه"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "فعال"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "فعال"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "عضویت خبرنامه"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "متاسفانه به دلیل مشکل فنی قادر به ارسال ایمیل تایید برای شما نمی باشیم.این مشکل ممکن است به دلیل نامعتبر بودن آدرس ایمیل شما باشد."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "اشتراک شما با موفقیت فعال شد."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "در خواست اشتراک شما با موفقیت دریافت شد و ایمیل فعال سازی برای شما ارسال گردید.دستورات و لینک فعال سازی در ایمیل قرار دارد."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "آیا می خواهید مشترک خبرنامه شوید؟"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "لغو عضویت خبرنامه"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "لغو عضویت"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "عضویت شما با موفقیت لغو شد."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "درخواست لغو اشتراک شما با موفقیت دریافت شد.ایمیلی حاوی لینک لغو اشتراک برای شما ارسال گردید."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "آیا می خواهید اشتراک خبرنامه خود را لغو کنید؟"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "بروز رسانی خبرنامه"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "به‌روز‌رسانی اشتراک"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "اشتراک شما با موفقیت به روز رسانی شد."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "درخواست بروز رسانی شما با موفقیت دریافت شد و ایمیل دستورات به همراه لینک بروز رسانی برای شما ارسال گردید."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "در حال حاضر:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "تغییر:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "تغییرات شما ثبت شد."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "شما در %s عضو شدید."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "User %(rs)s مشترک %(my_newsletter)s. شد"
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "شما عضو خبر نامه '%s' می باشید"
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "عضویت شما از %s لغو شد"
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "User %(rs)s اشتراک خود را از %(my_newsletter)s. لغو کرد"
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "شما عضو خبرنامه %s نیستید"
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Ali Javadi <rohamn@hotmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: Ali Javadi <rohamn@hotmail.com>\n"
"Language-Team: Persian (http://www.transifex.com/dokterbob/django-newsletter/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "پیام تغییر یافته است و باید پیش از ارسال ذخیره شود. تأیید کنید تا ذخیره‌سازی انجام شود یا کنسل کنید و به ویرایش ادامه دهید."
@@ -0,0 +1,851 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Claude Paroz <claude@2xlibre.net>, 2016
# Marc Belmont <contact@marcbelmont.com>, 2014
# Santiago Malter-Terrada <s@yop.li>, 2013
# Spout <spoutnik@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 11:31+0000\n"
"PO-Revision-Date: 2018-03-19 10:53+0000\n"
"Last-Translator: Spout <spoutnik@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/dokterbob/django-newsletter/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "L'entrée « %s » ne contient pas d'adresse de courriel valide."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Le fichier d'adresses comporte des doublons pour « %s »."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Certaines entrées sont déjà abonnées."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "L'adresse de courriel %(email)s est trop longue. La taille maximum est %(email_length)s caractères."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Le nom %(name)s est trop long. La taille maximum est de %(name_length)s caractères."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:165
msgid "name"
msgstr "nom"
#: addressimport/parsers.py:200
msgid "display"
msgstr "affichage"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "La colonne du nom n'a pas été trouvée. Le nom de cette colonne doit être « name » ou « %s »."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 forms.py:43 forms.py:76 models.py:39
#: models.py:179
msgid "e-mail"
msgstr "courriel"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "La colonne de l'adresse électronique n'a pas été trouvée. Le nom de cette colonne doit être « email », « e-mail » ou « %(email)s »."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Impossible de déterminer les colonnes dans ce fichier CSV. Il doit y avoir un champ nommé « name » ou « %(name)s » et un nommé « e-mail » ou « %(e-mail)s »."
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "La ligne « %(row)s » ne contient pas de champ de courriel et de nom."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Erreur de lecture du fichier vCard : %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "L'entrée « %s » ne contient pas d'adresse électronique."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "Plusieurs entrées n'ont pas d'adresse électronique. "
#: admin.py:79
msgid "Messages"
msgstr "Messages"
#: admin.py:83
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Inscriptions"
#: admin.py:87
msgid "Submissions"
msgstr "Publications"
#: admin.py:99 models.py:102 models.py:300 models.py:480 models.py:699
msgid "newsletter"
msgstr "newsletter"
#: admin.py:117 models.py:555
msgid "submission"
msgstr "publication"
#: admin.py:124
msgid "publish date"
msgstr "date de publication"
#: admin.py:154
msgid "Sent."
msgstr "Envoyé."
#: admin.py:157
msgid "Delayed submission."
msgstr "Publication reportée."
#: admin.py:159
msgid "Submitting."
msgstr "Envoi en cours."
#: admin.py:161
msgid "Not sent."
msgstr "Pas envoyé."
#: admin.py:162 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "Statut"
#: admin.py:169
msgid "Submission already sent."
msgstr "Publication déjà envoyée."
#: admin.py:178
msgid "Your submission is being sent."
msgstr "Votre publication est en cours d'envoi."
#: admin.py:225
msgid "Optional"
msgstr "Facultatif"
#: admin.py:253 models.py:450 models.py:491 models.py:703
msgid "message"
msgstr "message"
#: admin.py:258 templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Prévisualisation"
#: admin.py:275 views.py:611
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Aucun gabarit HTML n'est associé à la newsletter relative à ce message."
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "Inscrit"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "Désinscrit"
#: admin.py:388
msgid "Unactivated"
msgstr "Désactivé"
#: admin.py:396 models.py:314
msgid "subscribe date"
msgstr "date d'inscription"
#: admin.py:403 models.py:322
msgid "unsubscribe date"
msgstr "date de désinscription"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] "%d utilisateur a bien été inscrit."
msgstr[1] "%d utilisateurs ont bien été inscrits."
#: admin.py:416
msgid "Subscribe selected users"
msgstr "Inscrire les utilisateurs sélectionnés"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] "%d utilisateur a été désinscrit."
msgstr[1] "%d utilisateurs ont été désinscrits."
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "Désinscrire les utilisateurs sélectionnés"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] "%d inscription a été ajoutée."
msgstr[1] "%d inscriptions ont été ajoutées."
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Le type de fichier « %s » n'est pas reconnu."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "L'extension de fichier « %s » n'est pas reconnue."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "Aucune entrée trouvée dans ce fichier."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:6
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:75
msgid "Address file"
msgstr "Fichier d'adresses"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "Ignorer les erreurs non bloquantes"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "Vous devez confirmer avant de pouvoir continuer."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Confirmer l'importation"
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "Si un utilisateur a été choisi, ce champ doit rester vide."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "Il faut soit choisir un utilisateur ou indiquer une adresse électronique."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Ce message a déjà été publié dans un autre envoi. Les messages ne peuvent être publiés qu'une seule fois."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "L'objet %(name)s avec la clé %(key)r n'existe pas."
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr "Votre adresse électronique est déjà inscrite."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "Cette inscription n'a pas encore été activée."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "Cette adresse électronique n'a pas été inscrite."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "Cette inscription a déjà été annulée."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "Le code de validation que vous avez saisi ne correspond pas."
#: forms.py:139
msgid "Activation code"
msgstr "Code d'activation"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Envoi des newsletters dans la queue"
#: models.py:34
msgid "newsletter title"
msgstr "titre de la newsletter"
#: models.py:39
msgid "Sender e-mail"
msgstr "Courriel de l'expéditeur"
#: models.py:42
msgid "sender"
msgstr "expéditeur"
#: models.py:42
msgid "Sender name"
msgstr "Nom de l'expéditeur"
#: models.py:46
msgid "visible"
msgstr "visible"
#: models.py:50
msgid "send html"
msgstr "envoyer en HTML"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Indique si des versions HTML des courriels doivent être envoyés."
#: models.py:103
msgid "newsletters"
msgstr "newsletters"
#: models.py:159
msgid "user"
msgstr "utilisateur"
#: models.py:165
msgid "optional"
msgstr "facultatif"
#: models.py:209
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "L'inscription %(subscription)s a été mise à jour avec l'action « %(action)s »."
#: models.py:251
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Ni adresse électronique, ni nom d'utilisateur n'ont été fournis. Il manque quelque chose !"
#: models.py:255
msgid "If user is set, email must be null and vice versa."
msgstr "Si un utilisateur est défini, l'adresse électronique doit être vide et inversement."
#: models.py:297
msgid "IP address"
msgstr "Adresse IP"
#: models.py:306
msgid "activation code"
msgstr "code d'activation"
#: models.py:311
msgid "subscribed"
msgstr "inscrit"
#: models.py:319
msgid "unsubscribed"
msgstr "désinscrit"
#: models.py:327
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> à %(newsletter)s"
#: models.py:334
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s à %(newsletter)s"
#: models.py:340
msgid "subscription"
msgstr "inscription"
#: models.py:341
msgid "subscriptions"
msgstr "inscriptions"
#: models.py:429
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "L'orde de tri détermine l'ordre dans lequel les articles sont concaténés dans un post."
#: models.py:431
msgid "sort order"
msgstr "ordre de tri"
#: models.py:434 models.py:476
msgid "title"
msgstr "titre"
#: models.py:435
msgid "text"
msgstr "texte"
#: models.py:438
msgid "link"
msgstr "lien"
#: models.py:444
msgid "image"
msgstr "image"
#: models.py:456
msgid "article"
msgstr "article"
#: models.py:457
msgid "articles"
msgstr "articles"
#: models.py:477
msgid "slug"
msgstr "slug"
#: models.py:484
msgid "created"
msgstr "créé"
#: models.py:487
msgid "modified"
msgstr "modifié"
#: models.py:492
msgid "messages"
msgstr "messages"
#: models.py:497
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s dans %(newsletter)s"
#: models.py:556
msgid "submissions"
msgstr "publications"
#: models.py:559
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s le %(publish_date)s"
#: models.py:578
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Publication de %(submission)s à %(count)d personnes."
#: models.py:637
#, python-format
msgid "Submitting message to: %s."
msgstr "Publication du message à : %s."
#: models.py:646
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Le message %(subscription)s a échoué avec cette erreur : %(error)s"
#: models.py:664
#, python-format
msgid "Submission of message %s"
msgstr "Publication du message %s"
#: models.py:709
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Si vous n'en choisissez pas, le système va automatiquement choisir les destinataires pour vous."
#: models.py:711
msgid "recipients"
msgstr "destinataires"
#: models.py:716
msgid "publication date"
msgstr "date de publication"
#: models.py:720
msgid "publish"
msgstr "publier"
#: models.py:721
msgid "Publish in archive."
msgstr "Publier dans l'archive."
#: models.py:725
msgid "prepared"
msgstr "préparé"
#: models.py:729
msgid "sent"
msgstr "envoyé"
#: models.py:733
msgid "sending"
msgstr "envoi en cours"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Aperçu du message"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Accueil"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Message"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Changer"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Créer une publication"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Texte"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Soumettre"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "Importer"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importer des adresses"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Confirmer"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Envoyer"
#: templates/newsletter/message/message.html:21
msgid "Read more"
msgstr "En savoir plus"
#: templates/newsletter/message/message.html:27
msgid "Read message online"
msgstr "Lire le message en ligne"
#: templates/newsletter/message/message.html:29
#: templates/newsletter/newsletter_detail.html:21
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Désinscription"
#: templates/newsletter/message/message.txt:15
msgid "Unsubscribe:"
msgstr "Désinscription :"
#: templates/newsletter/message/subscribe.html:6
#, python-format
msgid "Subscription to %(title)s"
msgstr "Inscription à %(title)s"
#: templates/newsletter/message/subscribe.html:10
#: templates/newsletter/message/subscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested a subscription to %(title)s.\n"
"\n"
"If you would like to confirm your subscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Cher %(name)s,\n\nvous, ou quelqu'un en votre nom a demandé une inscription à %(title)s.\n\nSi vous voulez confirmer votre inscription, veuillez suivre ce lien d'activation :\nhttp://%(domain)s%(url)s\n\nCordialement,"
#: templates/newsletter/message/subscribe_subject.txt:1
msgid "Confirm subscription"
msgstr "Confirmer l'inscription"
#: templates/newsletter/message/unsubscribe.html:6
#, python-format
msgid "Unsubscription from %(title)s"
msgstr "Désinscription de %(title)s"
#: templates/newsletter/message/unsubscribe.html:9
#: templates/newsletter/message/unsubscribe.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested unsubscription from %(title)s.\n"
"\n"
"If you would like to confirm your unsubscription, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Cher %(name)s,\n\nvous, ou quelqu'un en votre nom a demandé une désinscription à %(title)s.\n\nSi vous voulez confirmer votre désinscription, veuillez suivre ce lien d'activation :\nhttp://%(domain)s%(url)s\n\nCordialement,"
#: templates/newsletter/message/unsubscribe_subject.txt:1
msgid "Confirm unsubscription"
msgstr "Confirmer la désinscription"
#: templates/newsletter/message/update.html:6
#, python-format
msgid "Update of subscription to %(title)s"
msgstr "Modifier l'inscription à %(title)s"
#: templates/newsletter/message/update.html:9
#: templates/newsletter/message/update.txt:1
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"you, or someone in your name requested updating your personal information for %(title)s.\n"
"\n"
"To make changes to your information in our database, please follow this activation link:\n"
"http://%(domain)s%(url)s\n"
"\n"
"Kind regards,"
msgstr "Cher %(name)s,\n\nvous, ou quelqu'un en votre nom a demandé la modification de vos données personnelles pour %(title)s.\n\nPour valider les modifications de vos informations dans notre base de données, veuillez suivre ce lien d'activation :\nhttp://%(domain)s%(url)s\n\nCordialement,"
#: templates/newsletter/message/update_subject.txt:1
msgid "Update information"
msgstr "Modifier les informations"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Détail de la newsletter"
#: templates/newsletter/newsletter_detail.html:13
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Inscription"
#: templates/newsletter/newsletter_detail.html:17
msgid "Update"
msgstr "Mise à jour"
#: templates/newsletter/newsletter_detail.html:24
msgid "Archive"
msgstr "Archiver"
#: templates/newsletter/newsletter_detail.html:27
#: templates/newsletter/submission_archive.html:18
msgid "Back to list"
msgstr "Retour à la liste"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Liste de newsletter"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Mettre à jour les inscriptions"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Archives de la newsletter"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "activer"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Activer"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Inscription newsletter"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "En raison d'un problème technique, nous n'avons pas pu vous envoyer de courriel de confirmation. Votre adresse électronique n'est peut-être pas valide."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Votre inscription a été activée avec succès."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Votre demande d'inscription a bien été prise en compte et un courriel d'activation vous a été envoyé. Veuillez cliquer sur le lien s'y trouvant afin d'activer votre inscription."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Voulez-vous vous inscrire à cette newsletter ?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Désinscription newsletter"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Vous avez été désinscrit."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Votre demande de désinscription a bien été prise en compte. Un courriel vous a été envoyé. Veuillez cliquer sur le lien s'y trouvant afin de confirmer votre désinscription."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Voulez-vous vous désinscrire de cette newsletter ?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Mise à jour newsletter"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Mettre à jour l'inscription"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Votre inscription a été mise à jour."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Votre demande de mise à jour a bien été reçue et un courriel de confirmation vous a été envoyé. Veuillez cliquer sur le lien s'y trouvant afin de mettre à jour votre inscription."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Actuellement :"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Changement :"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Le courriel « %(email)s » correspond à un utilisateur ayant déjà un compte sur ce site. Veuillez vous connecter en tant que cet utilisateur et essayer à nouveau."
#: views.py:120
msgid "Your changes have been saved."
msgstr "Vos modifications ont été enregistrées."
#: views.py:311
#, python-format
msgid "You have been subscribed to %s."
msgstr "Vous avez été inscrit à %s."
#: views.py:315
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "L'utilisateur %(rs)s s'est inscrit à %(my_newsletter)s."
#: views.py:325
#, python-format
msgid "You are already subscribed to %s."
msgstr "Vous êtes déjà inscrit à %s."
#: views.py:350
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Vous avez été désinscrit de %s."
#: views.py:354
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "L'utilisateur %(rs)s s'est désinscrit de %(my_newsletter)s."
#: views.py:367
#, python-format
msgid "You are not subscribed to %s."
msgstr "Vous n'êtes pas inscrit à %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Santiago Malter-Terrada <s@yop.li>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: Santiago Malter-Terrada <s@yop.li>\n"
"Language-Team: French (http://www.transifex.com/dokterbob/django-newsletter/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "La publication a été modifiée. Elle doit être sauvée avant que vous puissiez l'envoyer. Cliquez sur OK pour continuer en sauvegardant, ou sur annuler pour continuer l'édition."
@@ -0,0 +1,778 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# ebergmundur <einar@nature.is>, 2014
# dokterbob <mathijs@mathijsfietst.nl>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:35+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Icelandic (Iceland) (http://www.transifex.com/dokterbob/django-newsletter/language/is_IS/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: is_IS\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Færsla '%s' inniheldur ekki nothæft netfang"
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Netfangalisitinn inniheldur tvítekið '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Þegar er áskrift að sumum færslum."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Netfangið %(email)s er of langt, hámarf %(email_length)s bókstafir."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Nafn %(name)s of langt, hámark %(name_length)s bókstafir."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "nafn"
#: addressimport/parsers.py:200
msgid "display"
msgstr "sýna"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Nafnadálkur finnst ekki. Heiti dálksins ætti að vera 'name' eða '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "netfang"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Netfangadálkur fannst ekki. Dálkurinn ætti að heita 'email', 'e-mail' eða '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Gat ekki skilgreint dálka CVS skjalsins með vissu. Það ætti að vera dálkur sem heitir 'name' eða '%(name)s' og annar kallaður 'e-mail' eða '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Færsla með '%(row)s' inniheldur ekki nafn né netfang."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Villa við lestur vCars skrár: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Færsla '%s' inniheldur ekki netfang."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Sumar færslur hafa engin netföng."
#: admin.py:63
msgid "Messages"
msgstr "Skilaboð"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Áskriftir"
#: admin.py:77
msgid "Submissions"
msgstr "Sendingar"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "sendingar"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "fréttabréf"
#: admin.py:112
msgid "publish date"
msgstr "dagsetning birtingar"
#: admin.py:138
msgid "Sent."
msgstr "Sent."
#: admin.py:141
msgid "Delayed submission."
msgstr "Sendingar í bið."
#: admin.py:143
msgid "Submitting."
msgstr "Sendi."
#: admin.py:145
msgid "Not sent."
msgstr "Ekki sent."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Staða"
#: admin.py:153
msgid "Submission already sent."
msgstr "Sending þegar send."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "Sending í gagni."
#: admin.py:208
msgid "Optional"
msgstr "Valkvæmt"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "skilaboð"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Forskoða"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Ekkert HMTL sniðmát tengt því fréttabréfi sem þessi skilaboð tilheyra."
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Í áskrift"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Ekki í áskrift"
#: admin.py:389
msgid "Unactivated"
msgstr "Ekki virkjað"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "dagsetning áskriftar"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "áskrift lokið"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s notendur hafa verið aftengdir áskrift."
msgstr[1] "%s notendur hafa verið aftengdir áskrift."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Gerðu þessa notendur að áskrifendum."
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s notendur hafa verið aftengdir áskrift."
msgstr[1] "%s notendur hafa verið aftengdir áskrift."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Aftengja valda notendur"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s áskriftum giftusamlega bætt við."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Skráargerð '%s' er óþekkt."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Skráarending '%s' er óþekkt."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "Engar færslur fundust í þessu skjali."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Fréttabréf"
#: admin_forms.py:73
msgid "Address file"
msgstr "Netfangaskrá"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Láta ómerkilegar villur sem vind um eyru þjóta"
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Þú þarft að staðfesta til að halda áfram."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Staðfesta innlestur"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Ef notandi hefur verið valinn ætti þessi reitur að vera tómur."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "Annað hvort notandi eða netfang verður að vera valið."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Þessi skilaboð hafa þegar verið send í annari sendingu.\nSkilaboð er einungid hægt að senda einu sinni."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s hlutiur með lykli %(key)r finnst ekki."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "Netfang er nauðsynlegt."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Netfangið '%(email)s' tilheyrir skráðum notenda. Skráðu þig inn og reyndu aftur."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Netfang þitt er þegar á skrá."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "Þessi áskrift er ekki virkjuð."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Þetta netfang tilheyrir notanda '%(username)s'. Skráðu þig inn og reyndu aftur."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Þetta nefagn er ekki í áskrift."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Þessari áskrift hefur þegar verið sagt upp."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "Staðfestingarkóði passar ekki."
#: forms.py:169
msgid "Activation code"
msgstr "Virkjunarkóði"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Sendi fréttabréf í biðröð"
#: models.py:32
msgid "newsletter title"
msgstr "yfirskirft fréttabréfs"
#: models.py:37
msgid "Sender e-mail"
msgstr "Netfang sendanda"
#: models.py:40
msgid "sender"
msgstr "sendandi"
#: models.py:40
msgid "Sender name"
msgstr "Nafn sendanda"
#: models.py:44
msgid "visible"
msgstr "sýnilegt"
#: models.py:48
msgid "send html"
msgstr "senda HTML"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Val um HTML eður ei í póstum."
#: models.py:101
msgid "newsletters"
msgstr "fréttabréf"
#: models.py:157
msgid "user"
msgstr "notandi"
#: models.py:162
msgid "optional"
msgstr "valkvæmt"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Uppfærði áskriftir %(subscription)s sem %(action)s."
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Hvorki netfang né notendanafn eru skráð. Það kallar á ósamræmi."
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Ef notandi er valinn, verður netfang að vera tómt eða öfugt."
#: models.py:294
msgid "IP address"
msgstr "IP tala"
#: models.py:301
msgid "activation code"
msgstr "staðfestingarkóði"
#: models.py:306
msgid "subscribed"
msgstr "í áskrift"
#: models.py:314
msgid "unsubscribed"
msgstr "ekki í áskrift"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> til %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s til %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "áskrift"
#: models.py:336
msgid "subscriptions"
msgstr "áskriftir"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Röðun stýrir röð greina í sendingu"
#: models.py:441
msgid "sort order"
msgstr "röðun"
#: models.py:444 models.py:483
msgid "title"
msgstr "fyrirsögn"
#: models.py:445
msgid "text"
msgstr "text"
#: models.py:448
msgid "link"
msgstr "tengill"
#: models.py:454
msgid "image"
msgstr "mynd"
#: models.py:465
msgid "article"
msgstr "grein"
#: models.py:466
msgid "articles"
msgstr "greinar"
#: models.py:484
msgid "slug"
msgstr "slóðarkóði [slug}"
#: models.py:491
msgid "created"
msgstr "stofnað"
#: models.py:494
msgid "modified"
msgstr "breytt"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s í %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "skilaboð"
#: models.py:538
msgid "submissions"
msgstr "sendingar"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s á %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Sendi %(submission)s til %(count)d fólks"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Sendi boð til: %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Skilaboð %(subscription)s brugðust með villu: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Sending skilaboða %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Ef þú velur ekkert mun kerfið velja áskrifendur."
#: models.py:675
msgid "recipients"
msgstr "viðtakendur"
#: models.py:680
msgid "publication date"
msgstr "dagsetning birtignar"
#: models.py:684
msgid "publish"
msgstr "birta"
#: models.py:685
msgid "Publish in archive."
msgstr "Birta í safni"
#: models.py:689
msgid "prepared"
msgstr "tilbúið"
#: models.py:693
msgid "sent"
msgstr "sent"
#: models.py:697
msgid "sending"
msgstr "sendi"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "Saga"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Sjá á vef"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Forskoða skilaboð"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Heim"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Skilaboð"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Breyta"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Stofna sendingu"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Texti"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Senda"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "sækja"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Bæta við %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Sækja netföng"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Staðfesta"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Sækja"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Upplýsingar um fréttabréf"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Fréttabréf, listi"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Áskrift"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Uppfæra áskriftir"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Safn fréttabréfa"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "virkja"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Virkja"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Áskrift fréttabréfa"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Vegna villu hefur ekki tekist að senda þér staðfestingarpóst.\nGæti stafað af villu í netfangi."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Áskrift þín hefur verið virkjuð með sóma."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Áskriftarbeiðni þín er móttekin og póstur sendur á netfangið með tengli sem smella þarf á til að virkja áskriftina."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Vilt þú gerast áskrifandi að þessu fréttabréfi?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Afþökkun fréttabréfa"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Hætta áskrift"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Áskift þinni er sagt upp."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Beiðni um uppsögn hefur verið móttekin. Tölvupóstur með tengli til stafestingar hefur verið sendur."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Viltu þú segja upp þessari áskrift?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Uppfæra fréttabréf"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Uppfæra áskrift"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Áskrift þín er sómasamlega uppfærð."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Uppfærslubeiðni þín hefur verið móttekin. Póstur með tengli til virkjunar hefur verið sendur á netfang þitt. Þú verður að staðfesta með því að smella á þann tengil."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Núna:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Breyta:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Breytingar eru vistaðar."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Þú hefur gerst áskrifandi að %s."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Notandi %(rs)s gerðist áskrifandi að %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Þú ert þegar áskrifandi að %s."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Þú hefur sagt upp áskrift að %s."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Notandi %(rs)s sagði upp áskrift að %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Þú ert ekki áskrifandi að %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# ebergmundur <einar@nature.is>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2014-04-16 20:34+0000\n"
"Last-Translator: ebergmundur <einar@nature.is>\n"
"Language-Team: Icelandic (Iceland) (http://www.transifex.com/dokterbob/django-newsletter/language/is_IS/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: is_IS\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Sendingin hefur tekið breytingum, það verður að vista hana áður en hægt er að senda. Smelltu á OK til að vista og halda áfram eða Cancel til að hætta við og halda áfram að breyta."
@@ -0,0 +1,778 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Andrea <andrea.zanibellato@gmail.com>, 2013
# dokterbob <mathijs@mathijsfietst.nl>, 2016
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:33+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Italian (http://www.transifex.com/dokterbob/django-newsletter/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "La voce '%s' non contiene un indirizzo e-mail valido."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Il file di indirizzi contiene dei duplicati per '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Alcune voci sono già registrate per l'iscrizione."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Indirizzo e-mail %(email)s troppo lungo, la lunghezza massima è di %(email_length)s caratteri."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Nome %(name)s troppo lungo, la lunghezza massima è di %(name_length)s caratteri."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "nome"
#: addressimport/parsers.py:200
msgid "display"
msgstr "mostra"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Colonna nome non trovata. Il nome di questa colonna dovrebbe essere 'name' o '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Colonna e-mail non trovata. Il nome della colonna dovrebbe essere 'email', 'e-mail' o '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Non è stato possibile determinare le colonne appropriate nel file CSV. Dovrebbe esserci un campo denominato 'name' o '%(name)s' e uno denominato 'e-mail' o '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "La riga con contenuto '%(row)s' non contiene un campo nome ed indirizzo e-mail."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Errore nella lettura del file vCard: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "La voce '%s' non contiene un indirizzo e-mail."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Alcune voci non hanno un indirizzo e-mail."
#: admin.py:63
msgid "Messages"
msgstr "Messaggi"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Iscrizioni"
#: admin.py:77
msgid "Submissions"
msgstr "Richieste"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "invio"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "newsletter"
#: admin.py:112
msgid "publish date"
msgstr "data pubblicazione"
#: admin.py:138
msgid "Sent."
msgstr "Inviato."
#: admin.py:141
msgid "Delayed submission."
msgstr "Invio rimandato."
#: admin.py:143
msgid "Submitting."
msgstr "Invio in corso."
#: admin.py:145
msgid "Not sent."
msgstr "Non inviato."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Stato"
#: admin.py:153
msgid "Submission already sent."
msgstr "Richiesta già inviata."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "La tua richiesta è in corso."
#: admin.py:208
msgid "Optional"
msgstr "Opzionale"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "messaggio"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Anteprima"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Nessun template HTML è associato con la newsletter a cui appartiene questo messaggio."
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Iscritto"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Disiscritto"
#: admin.py:389
msgid "Unactivated"
msgstr "Non attivato"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "data iscrizione"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "data disiscrizione"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s utente è stato iscritto con successo."
msgstr[1] "%s utenti sono stati iscritti con successo."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Iscrivi gli utenti selezionati"
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s utente è stato disiscritto con successo."
msgstr[1] "%s utenti sono stati disiscritti con successo."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Disiscrivi gli utenti selezionati"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s iscrizioni sono state aggiunte con successo."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Tipo di file '%s' non riconosciuto."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Estensione del file '%s' non riconosciuta."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "Nessuna voce trovata in questo file."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:73
msgid "Address file"
msgstr "File di indirizzi"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Ignora errori non fatali"
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Dovresti confermare per continuare."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Conferma importazione"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Se è stato selezionato un utente questo campo dovrebbe rimanere vuoto."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "È necessario selezionare un utente o specificare un indirizzo e-mail."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Questo messaggio è già stato pubblicato in qualche altro invio. I messaggi possono essere pubblicati solo una volta."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "L'oggetto %(name)s con 'primary key' %(key)r non esiste."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "È richiesto un indirizzo e-mail."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "L'indirizzo e-mail '%(email)s' appartiene ad un utente registrato su questo sito. Per favore accedi con le credenziali di questo utente e riprova."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Il tuo indirizzo e-mail è già registrato come iscritto."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "L'iscrizione non è ancora stata attivata."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Questo indirizzo e-mail appartiene all'utente '%(username)s'. Per favore accedi con le sue credenziali e riprova."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Questo indirizzo e-mail non è registrato per l'iscrizione."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Ci si è già disiscritti da questo elenco."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "Il codice di validazione che hai fornito non corrisponde."
#: forms.py:169
msgid "Activation code"
msgstr "Codice di attivazione"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Inviando mail newsletter in coda"
#: models.py:32
msgid "newsletter title"
msgstr "titolo newsletter"
#: models.py:37
msgid "Sender e-mail"
msgstr "E-mail mittente"
#: models.py:40
msgid "sender"
msgstr "mittente"
#: models.py:40
msgid "Sender name"
msgstr "Nome mittente"
#: models.py:44
msgid "visible"
msgstr "visibile"
#: models.py:48
msgid "send html"
msgstr "invia html"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Se inviare o meno una versione HTML delle e-mail."
#: models.py:101
msgid "newsletters"
msgstr "newsletter"
#: models.py:157
msgid "user"
msgstr "utente"
#: models.py:162
msgid "optional"
msgstr "opzionale"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Aggiornata iscrizione %(subscription)s per %(action)s."
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Non è stato impostato né un email né un nome utente. Questo porta all'inconsistenza!"
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Se è stato impostato un utente, il campo e-mail deve essere nullo e viceversa."
#: models.py:294
msgid "IP address"
msgstr "Indirizzo IP"
#: models.py:301
msgid "activation code"
msgstr "codice di attivazione"
#: models.py:306
msgid "subscribed"
msgstr "iscritto"
#: models.py:314
msgid "unsubscribed"
msgstr "disiscritto"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> a %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s a %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "iscrizione"
#: models.py:336
msgid "subscriptions"
msgstr "iscrizioni"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "L'ordinamento determina l'ordine in cui gli articoli sono concatenati in un post."
#: models.py:441
msgid "sort order"
msgstr "ordinamento"
#: models.py:444 models.py:483
msgid "title"
msgstr "titolo"
#: models.py:445
msgid "text"
msgstr "testo"
#: models.py:448
msgid "link"
msgstr "collegamento"
#: models.py:454
msgid "image"
msgstr "immagine"
#: models.py:465
msgid "article"
msgstr "articolo"
#: models.py:466
msgid "articles"
msgstr "articoli"
#: models.py:484
msgid "slug"
msgstr "slug"
#: models.py:491
msgid "created"
msgstr "creato"
#: models.py:494
msgid "modified"
msgstr "modificato"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s in %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "messaggi"
#: models.py:538
msgid "submissions"
msgstr "invii"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s del %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Inviando %(submission)s a %(count)d persone"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Inviando messaggio a: %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Il messaggio %(subscription)s è fallito con errore: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Invio del messaggio %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Se non selezioni nessuno, il sistema troverà automaticamente i sottoscrittori per te."
#: models.py:675
msgid "recipients"
msgstr "destinatari"
#: models.py:680
msgid "publication date"
msgstr "data di pubblicazione"
#: models.py:684
msgid "publish"
msgstr "pubblica"
#: models.py:685
msgid "Publish in archive."
msgstr "Pubblica nell'archivio."
#: models.py:689
msgid "prepared"
msgstr "preparato"
#: models.py:693
msgid "sent"
msgstr "inviato"
#: models.py:697
msgid "sending"
msgstr "inviando"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "Cronologia"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Vedi sul sito"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Anteprima messaggio"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Inizio"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Messaggio"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Cambia"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Crea invio"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Testo"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Invia"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "importa"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Aggiungi %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importa indirizzi"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Conferma"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Carica"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Dettaglio newsletter"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Elenco newsletter"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Iscriviti"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Aggiorna sottoscrizioni"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Archivio newsletter"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "attiva"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Attiva"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Iscrizione newsletter"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "A causa di un errore tecnico non è stato possibile inviare la tua mail di conferma. Questo potrebbe essere causato da un indirizzo e-mail non valido."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "La tua iscrizione è stata attivata con successo."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "La tua richiesta di iscrizione è stata ricevuta con successo e ti è stata inviata una e-mail di attivazione. In quella e-mail troverai un link da cliccare per poter attivare la tua iscrizione."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Vuoi iscriverti a questa newsletter?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Disiscrizione newsletter"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Disiscriviti"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Sei stato disiscritto con successo."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "La tua richiesta di cancellazione è stata ricevuta con successo. Ti è stata inviata un'e-mail con il link da cliccare per poter confermare la tua disiscrizione."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Vuoi disiscriverti da questa newsletter?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Aggiornamento newsletter"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Aggiorna iscrizione"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "La tua iscrizione è stata aggiornata con successo."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "La tua richiesta di aggiornamento è stata ricevuta con successo e ti è stata inviata una e-mail di attivazione. In quella e-mail troverai un link da cliccare per poter completare l'aggiornamento della tua iscrizione."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Attualmente:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Cambia:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Le tue modifiche sono state salvate."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Sei ora iscritto a %s."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "L'utente %(rs)s si è iscritto a %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Sei già iscritto a %s."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Sei stato disiscritto da %s."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "L'utente %(rs)s si è disiscritto da %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Non sei iscritto a %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Andrea <andrea.zanibellato@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: Andrea <andrea.zanibellato@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/dokterbob/django-newsletter/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Il contenuto è stato cambiato. Deve essere salvato prima che tu possa inviarlo. Clicca OK per procedere con il salvataggio, clicca annulla per continuare con la modifica."
@@ -0,0 +1,754 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# dokterbob <mathijs@mathijsfietst.nl>, 2011
# G M <gerben_m88@hotmail.com>, 2016
# dokterbob <mathijs@mathijsfietst.nl>, 2013,2016
# dokterbob <mathijs@mathijsfietst.nl>, 2012
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-08-11 16:09+0200\n"
"PO-Revision-Date: 2016-08-11 14:14+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Dutch (http://www.transifex.com/dokterbob/django-newsletter/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Rij met '%s' bevat geen geldig e-mail adres."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Het adressenbestand bevat een dubbele rij voor '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Op enkele rijen is al geabonneerd."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "E-mail adres %(email)s is te lang, maximale lengte is %(email_length)s karakters."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Naam %(name)s is te lang, maximale lengte is %(name_length)s karakters."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:164
msgid "name"
msgstr "naam"
#: addressimport/parsers.py:200
msgid "display"
msgstr "display"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Naam kolom niet gevonden. De naam van deze kolom moet 'name' of '%s' zijn."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:39 models.py:178
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Email-kolom niet gevonden. De naam van deze kolom moet 'email', 'e-mail' of '%(email)s' zijn."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Het is niet gelukt om de juiste kolommon in het CSV-betand te bepalen. Er zou een veld 'name' of '%(name)s' en een veld 'e-mail' of '%(e-mail)s' in moeten staan.'"
#: addressimport/parsers.py:264
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Rij met inhoud '%(row)s' bevat geen naam- en email-veld."
#: addressimport/parsers.py:290
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Fout bij lezen vCard-bestand: %s"
#: addressimport/parsers.py:309
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Ingang '%s' bevat geen geldig e-mail adres."
#: addressimport/parsers.py:345
msgid "Some entries have no e-mail address."
msgstr "Enkele ingangen hebben geen geldig e-mail adres."
#: admin.py:64
msgid "Messages"
msgstr "Berichten"
#: admin.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Abonnementen"
#: admin.py:78
msgid "Submissions"
msgstr "Zendingen"
#: admin.py:98 models.py:551
msgid "submission"
msgstr "zending"
#: admin.py:105 admin.py:249 admin.py:364 models.py:102 models.py:298
#: models.py:476 models.py:687
msgid "newsletter"
msgstr "nieuwsbrief"
#: admin.py:113
msgid "publish date"
msgstr "publicatiedatum"
#: admin.py:139
msgid "Sent."
msgstr "Verzonden."
#: admin.py:142
msgid "Delayed submission."
msgstr "Wordt later verzonden."
#: admin.py:144
msgid "Submitting."
msgstr "Wordt nu verzonden."
#: admin.py:146
msgid "Not sent."
msgstr "Niet verzonden."
#: admin.py:147 admin.py:389 admin_forms.py:115
msgid "Status"
msgstr "Status"
#: admin.py:154
msgid "Submission already sent."
msgstr "Zending is al verzonden."
#: admin.py:163
msgid "Your submission is being sent."
msgstr "Uw zending wordt verzonden."
#: admin.py:210
msgid "Optional"
msgstr "Optioneel"
#: admin.py:237 models.py:447 models.py:487 models.py:690
msgid "message"
msgstr "bericht"
#: admin.py:241 templates/admin/newsletter/message/change_form.html.py:8
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Voorvertonen"
#: admin.py:266 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Er is geen HTML-template geässocieerd met de nieuwsbrief die bij dit bericht hoort."
#: admin.py:384 admin_forms.py:103
msgid "Subscribed"
msgstr "Aangemeld"
#: admin.py:386 admin_forms.py:104
msgid "Unsubscribed"
msgstr "Opzeggen"
#: admin.py:388
msgid "Unactivated"
msgstr "Ongeactiveerd"
#: admin.py:396 models.py:311
msgid "subscribe date"
msgstr "abonneerdatum"
#: admin.py:403 models.py:319
msgid "unsubscribe date"
msgstr "opzegdatum"
#: admin.py:411
#, python-format
msgid "%d user has been successfully subscribed."
msgid_plural "%d users have been successfully subscribed."
msgstr[0] "%d gebruiker is succesvol ingeschreven."
msgstr[1] "%d gebruikers zijn succesvol ingeschreven."
#: admin.py:416
msgid "Subscribe selected users"
msgstr "Schrijf geselecteerde gebruikers in"
#: admin.py:423
#, python-format
msgid "%d user has been successfully unsubscribed."
msgid_plural "%d users have been successfully unsubscribed."
msgstr[0] "%d gebruiker is succesvol uitgeschreven."
msgstr[1] "%d gebruikers zijn succesvol uitgeschreven."
#: admin.py:428
msgid "Unsubscribe selected users"
msgstr "Geselecteerde gebruikers uitschrijven"
#: admin.py:484
#, python-format
msgid "%d subscription has been successfully added."
msgid_plural "%d subscriptions have been successfully added."
msgstr[0] "%d aanmelding is succesvol toegevoegd."
msgstr[1] "%d aanmeldingen zijn succesvol toegevoegd."
#: admin_forms.py:43
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Bestandstype '%s' wordt niet herkend."
#: admin_forms.py:60
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Bestandsextensie '%s' is niet herkend."
#: admin_forms.py:64
msgid "No entries could found in this file."
msgstr "Er zijn geen adressen gevonden in dit bestand."
#: admin_forms.py:72
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Nieuwsbrief"
#: admin_forms.py:75
msgid "Address file"
msgstr "Adressenbestand"
#: admin_forms.py:77
msgid "Ignore non-fatal errors"
msgstr "Negeer niet-fatale fouten"
#: admin_forms.py:88
msgid "You should confirm in order to continue."
msgstr "U moet bevestigen om door te kunnen gaan."
#: admin_forms.py:91
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Bevestig import"
#: admin_forms.py:121 admin_forms.py:129
msgid "If a user has been selected this field should remain empty."
msgstr "Als er een gebruiker is geselecteerd dient dit veld leeg te blijven."
#: admin_forms.py:139
msgid "Either a user must be selected or an email address must be specified."
msgstr "Er moet óf een gebruiker of een e-mail adres worden ingevoerd."
#: admin_forms.py:164
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Dit bericht is al gepubliceerd in een andere zending. Berichten kunnen maar eenmalig gepubliceerd worden."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s-object met primaire sleutel %(key)r bestaat niet."
#: forms.py:57
msgid "Your e-mail address has already been subscribed to."
msgstr "Uw e-mail adres is al geabonneerd."
#: forms.py:84
msgid "This subscription has not yet been activated."
msgstr "Deze inschrijving is nog niet geactiveerd."
#: forms.py:102
msgid "This e-mail address has not been subscribed to."
msgstr "Er is geen abonnement voor dit email adres."
#: forms.py:117
msgid "This subscription has already been unsubscribed from."
msgstr "Deze inschrijving is al opgezegd."
#: forms.py:133
msgid "The validation code supplied by you does not match."
msgstr "De verificatiecode die door u is opgegeven komt niet overeen."
#: forms.py:139
msgid "Activation code"
msgstr "Verificatiecode"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Bezig met versturen van klaarstaande zendingen"
#: models.py:34
msgid "newsletter title"
msgstr "Nieuwsbrief titel"
#: models.py:39
msgid "Sender e-mail"
msgstr "E-mail verzender"
#: models.py:42
msgid "sender"
msgstr "verzender"
#: models.py:42
msgid "Sender name"
msgstr "Naam verzender"
#: models.py:46
msgid "visible"
msgstr "zichtbaar"
#: models.py:50
msgid "send html"
msgstr "html versturen"
#: models.py:51
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Of er al dan niet HTML versies van e-mails verstuurd moeten worden."
#: models.py:103
msgid "newsletters"
msgstr "nieuwsbrieven"
#: models.py:159
msgid "user"
msgstr "gebruiker"
#: models.py:164
msgid "optional"
msgstr "optioneel"
#: models.py:208
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Abonement %(subscription)s aangepast naar %(action)s."
#: models.py:250
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Er is geen e-mail adres noch een gebruikersnaam ingesteld. Dit is vragen om inconsistentie!"
#: models.py:254
msgid "If user is set, email must be null and vice versa."
msgstr "Als er een gebruiker is ingesteld moet e-mail null zijn en vice versa."
#: models.py:296
msgid "IP address"
msgstr "IP-adres"
#: models.py:303
msgid "activation code"
msgstr "activatiecode"
#: models.py:308
msgid "subscribed"
msgstr "aangemeld"
#: models.py:316
msgid "unsubscribed"
msgstr "opgezegd"
#: models.py:324
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> op %(newsletter)s"
#: models.py:331
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s aan %(newsletter)s"
#: models.py:337
msgid "subscription"
msgstr "abonnement"
#: models.py:338
msgid "subscriptions"
msgstr "abonnementen"
#: models.py:426
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Sorteer volgorde bepaald de volgorde waarin artikelen in een bericht achter elkaar gezet worden."
#: models.py:428
msgid "sort order"
msgstr "sorteer volgorde"
#: models.py:431 models.py:472
msgid "title"
msgstr "titel"
#: models.py:432
msgid "text"
msgstr "tekst"
#: models.py:435
msgid "link"
msgstr "koppeling"
#: models.py:441
msgid "image"
msgstr "afbeelding"
#: models.py:452
msgid "article"
msgstr "artikel"
#: models.py:453
msgid "articles"
msgstr "artikelen"
#: models.py:473
msgid "slug"
msgstr "slug"
#: models.py:480
msgid "created"
msgstr "aangemaakt"
#: models.py:483
msgid "modified"
msgstr "verandert"
#: models.py:488
msgid "messages"
msgstr "berichten"
#: models.py:493
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s in %(newsletter)s"
#: models.py:552
msgid "submissions"
msgstr "zendingen"
#: models.py:555
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s op %(publish_date)s"
#: models.py:574
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Versturen van %(submission)s aan %(count)d mensen"
#: models.py:628
#, python-format
msgid "Submitting message to: %s."
msgstr "Versturen bericht aan: %s"
#: models.py:637
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Bericht %(subscription)s is gefaald met fout: %(error)s"
#: models.py:655
#, python-format
msgid "Submission of message %s"
msgstr "Verzending van bericht %s"
#: models.py:695
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Als u er geen selecteerd, zal het systeem automatisch de abonnees voor u opzoeken."
#: models.py:697
msgid "recipients"
msgstr "geaddresseerden"
#: models.py:702
msgid "publication date"
msgstr "publicatiedatum"
#: models.py:706
msgid "publish"
msgstr "publiceer"
#: models.py:707
msgid "Publish in archive."
msgstr "Publiceer in archief."
#: models.py:711
msgid "prepared"
msgstr "voorbereid"
#: models.py:715
msgid "sent"
msgstr "verzonden"
#: models.py:719
msgid "sending"
msgstr "verzenden"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Voorvertoning bericht"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Home"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Bericht"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Verander"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Maak zending aan"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Tekst"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Verzend"
#: templates/admin/newsletter/subscription/change_list.html:5
msgid "Import"
msgstr "Importeer"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importeer adres"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Bevestig"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Upload"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Nieuwsbrief detail"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Nieuwsbrieven lijst"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Abonneer"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Pas inschrijvingen aan"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Nieuwsbrief archief"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "activeer"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Activeer"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Abonneer op nieuwsbrief"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Wegens technische omstandigheden is het niet gelukt om een bevestigingsmail te versturen. Misschien heeft u een ongeldig e-mail adres ingevuld."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Uw inschrijving is succesvol geactiveerd."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Uw inschrijfverzoek is succesvol ontvangen en een activiatie e-mail is naar u verstuurd. In deze e-mail vind u een link die gevolgd moet worden om uw inschrijving te activeren."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Wilt u zich inschrijven op deze nieuwsbrief?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Zeg nieuwsbrief op"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Opzeggen"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "U bent succesvol uitgeschreven."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Uw uitschrijfverzoek is succesvol ontvangen. Er is een e-mail naar u verstuurd met een link die u dient te volgen om de uitschrijving te bevestigen."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Wilt u zich uitschrijven van deze nieuwsbrief?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Nieuwsbrief aanpassen"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Pas inschrijving aan"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Uw inschrijving is succesvol aangepast."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Uw aanpassingsverzoek is succesvol ontvangen en een activiatiemail is naar u verstuurd. In deze e-mail vind u een link die u dient aan te klikken om de aanpassingen te bevestigen."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Huidig:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Verander:"
#: validators.py:15
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Het email-adres '%(email)s' hoort bij een gebruiker van deze site. Log in als deze gebruiker en probeer het nog eens."
#: views.py:115
msgid "Your changes have been saved."
msgstr "Uw veranderingen zijn opgeslagen."
#: views.py:306
#, python-format
msgid "You have been subscribed to %s."
msgstr "U bent geaboneerd op %s."
#: views.py:310
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Gebruiker %(rs)s geaboneerd op %(my_newsletter)s."
#: views.py:320
#, python-format
msgid "You are already subscribed to %s."
msgstr "U bent al geabonneerd op %s."
#: views.py:345
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "U bent uitgeschreven van %s."
#: views.py:349
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Gebruiker %(rs)s uitgeschreven van %(my_newsletter)s."
#: views.py:362
#, python-format
msgid "You are not subscribed to %s."
msgstr "U bent niet ingeschreven op %s."
@@ -0,0 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2010-11-30 06:53+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (http://www.transifex.com/dokterbob/django-newsletter/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "De zending is veranderd. Hij moet opgeslagen worden voordat u kunt verzenden. Klik op OK om de zending op te slaan, klik op annuleren om verder te gaan met bewerken."
@@ -0,0 +1,782 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# maciej.maciaszek <maciej.maciaszek@gmail.com>, 2014
# marcinph <marcinpuhacz@gmail.com>, 2014
# dokterbob <mathijs@mathijsfietst.nl>, 2016
# mmiskiew <mmiskiew@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:33+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Polish (http://www.transifex.com/dokterbob/django-newsletter/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Wpis '%s' nie zawiera poprawnego adresu e-mail."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Plik z adresem zawiera zduplikowany wpis dla '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Niektóre wpisy są już dodane do subskrypcji."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Adres email %(email)s jest zbyt długi, maksymalna liczba znaków to %(email_length)s"
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Nazwa %(name)s jest zbyt długa, maksymalna liczba znaków to %(name_length)s"
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "nazwa"
#: addressimport/parsers.py:200
msgid "display"
msgstr "wyświetlanie"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Nazwa kolumny nie została znaleziona. Prawidłowa nazwa kolumny to albo 'name' albo '%s'"
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Kolumna e-mail nie została znaleziona. Prawidłowa nazwa kolumny to albo 'email' albo '%(email)s'"
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Nie znaleziono odpowiednich kolumn w pliku CSV. Powinno w nim wystąpić pole o nazwie 'name' lub '%(name)s' oraz pole o nazwie 'e-mail' lub '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Wiersz o zawartości '%(row)s' nie zawiera pól 'name' oraz 'email'"
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Błąd przy odczycie pliku vCard: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "Wpis '%s' nie zawiera adresu e-mail."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Niektóre wpisy nie posiadają adresów e-mail."
#: admin.py:63
msgid "Messages"
msgstr "Wiadomości"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Subskrybcje"
#: admin.py:77
msgid "Submissions"
msgstr "Wysyłki"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "wysyłka"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "newsletter"
#: admin.py:112
msgid "publish date"
msgstr "data publikacji"
#: admin.py:138
msgid "Sent."
msgstr "Wysłane."
#: admin.py:141
msgid "Delayed submission."
msgstr "Odroczone wysyłki."
#: admin.py:143
msgid "Submitting."
msgstr "Wysyłanie."
#: admin.py:145
msgid "Not sent."
msgstr "Nie wysłane."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Status"
#: admin.py:153
msgid "Submission already sent."
msgstr "Wysyłka została zakończona."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "Twoja wysyłka jest przetwarzana."
#: admin.py:208
msgid "Optional"
msgstr "Opcjonalny"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "wiadomość"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Podgląd"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Nie odnaleziono szablonu HTML dla newslettera do którego należy ta wiadomość"
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Zapisany"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Niezapisany"
#: admin.py:389
msgid "Unactivated"
msgstr "Dezaktywowany"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "data zapisania"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "data wypisania"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s użytkownik został pomyślnie zapisany"
msgstr[1] "%s użytkowników zostało pomyślnie zapisanych"
msgstr[2] "%s użytkowników zostało pomyślnie zapisanych."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Zapisz wybranych użytkowników"
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s użytkownik został pomyślnie wypisany."
msgstr[1] "%s użytkowników zostało pomyślnie wypisanych"
msgstr[2] "%s użytkowników zostało pomyślnie wypisanych."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Wypisz zaznaczonych użytkowników"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s subskrypcji zostało dodanych pomyślnie."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Rodzaj pliku '%s' nie został rozpoznany."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Rozszerzenie '%s' nie zostało rozpoznane."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "Żadne wpisy nie zostały znalezione w tym pliku."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Newsletter"
#: admin_forms.py:73
msgid "Address file"
msgstr "Plik z adresami"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Zignoruj błędy niekrytyczne."
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Powinieneś zatwierdzić, żeby móc kontynuować."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Potwierdź import"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Jeśli użytkownik został wybrany, to pole powinno zostać puste."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "Użytkownik lub adres e-mail musi zostać podany."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Ta wiadomość została już opublikowana w innej wysyłce. Wiadomości mogą być publikowane tylko raz."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Obiekt %(name)s z kluczem głównym %(key)r nie istnieje."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "Adres e-mail jest wymagany."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Adres e-mail '%(email)s' należy do użytkownika posiadającego konto w tym systemie. Zaloguj się jako ten użytkownik i spróbuj ponownie."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Twój adres e-mail został już zapisany."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "Ta subskrypcja nie została jeszcze aktywowana."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Ten adres e-mail należy do użytkownika '%(username)s'. Zaloguj się jako ten użytkownik i spróbuj ponownie."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Ten adres e-mail został zapisany."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Ta subskrypcja została już anulowana."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "Podany kod weryfikacyjny jest nieprawidłowy."
#: forms.py:169
msgid "Activation code"
msgstr "Kod aktywacyjny"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Wysyłanie zaplanowanych wiadomości newslettera"
#: models.py:32
msgid "newsletter title"
msgstr "tytuł newslettera"
#: models.py:37
msgid "Sender e-mail"
msgstr "E-mail nadawcy"
#: models.py:40
msgid "sender"
msgstr "nadawca"
#: models.py:40
msgid "Sender name"
msgstr "Imię nadawcy"
#: models.py:44
msgid "visible"
msgstr "widoczny"
#: models.py:48
msgid "send html"
msgstr "wyślij html"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Czy wiadomości e-mail mają być wysyłane w wersji HTML."
#: models.py:101
msgid "newsletters"
msgstr "newslettery"
#: models.py:157
msgid "user"
msgstr "użytkownik"
#: models.py:162
msgid "optional"
msgstr "opcjonalny"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Zaktualizowano subskrypcję %(subscription)s o %(action)s"
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Email ani nazwa nie została ustawiona. To prosi się o niespójność!"
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Jeżeli wpiszesz użytkownika, adres email musi pozostać pusty i na odwrót."
#: models.py:294
msgid "IP address"
msgstr "adres IP"
#: models.py:301
msgid "activation code"
msgstr "kod aktywacyjny"
#: models.py:306
msgid "subscribed"
msgstr "zapisany"
#: models.py:314
msgid "unsubscribed"
msgstr "wypisany"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> do %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s do %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "subskrypcja"
#: models.py:336
msgid "subscriptions"
msgstr "subskrypcje"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Porządek sortowania determinuje kolejność w jakiej artykuły są wyświetlane w wiadomości"
#: models.py:441
msgid "sort order"
msgstr "porządek sortowania"
#: models.py:444 models.py:483
msgid "title"
msgstr "tytuł"
#: models.py:445
msgid "text"
msgstr "tekst"
#: models.py:448
msgid "link"
msgstr "odnośnik"
#: models.py:454
msgid "image"
msgstr "obraz"
#: models.py:465
msgid "article"
msgstr "artykuł"
#: models.py:466
msgid "articles"
msgstr "artykuły"
#: models.py:484
msgid "slug"
msgstr "slug"
#: models.py:491
msgid "created"
msgstr "stworzony"
#: models.py:494
msgid "modified"
msgstr "zmodyfikowany"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s w %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "wiadomości"
#: models.py:538
msgid "submissions"
msgstr "wysyłki"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s dnia %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Wysłano %(submission)s wiadomości do %(count)d odbiorców"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Wysyłanie wiadomości do: %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Wiadomość %(subscription)s zakończyła się niepowodzeniem: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Wysyłka wiadomości %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Jeśli nic nie zaznaczysz, system automatycznie wybierze odbiorców dla Ciebie."
#: models.py:675
msgid "recipients"
msgstr "odbiorcy"
#: models.py:680
msgid "publication date"
msgstr "data publikacji"
#: models.py:684
msgid "publish"
msgstr "publikuj"
#: models.py:685
msgid "Publish in archive."
msgstr "Publikuj w archiwum"
#: models.py:689
msgid "prepared"
msgstr "przygotowany"
#: models.py:693
msgid "sent"
msgstr "wysłany"
#: models.py:697
msgid "sending"
msgstr "wysyłanie"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "Historia"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Zobacz na stronie"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Podgląd wiadomości"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Strona główna"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Wiadomość"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Zmiana"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Utwórz wysyłkę"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Tekst"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Wyślij"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "import"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Dodaj %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importuj adresy"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Potwierdź"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Wyślij"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Szczegóły newslettera"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Lista newslettera"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Subskrybuj"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Zaktualizuj subskrypcje"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Archiwum newslettera"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "aktywuj"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Aktywuj"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Zapisz do newslettera"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "W związku z problemami technicznymi nie jesteśmy w stanie przesłać emaila z potwierdzeniem. Powodem może być błędnie zdefiniowany adres email."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Twoja subskrypcja została pomyślnie aktywowana"
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Twoja subskrypcja została pomyślnie przyjęta i został do Ciebie wysłany e-mail aktywacyjny. W tej wiadomości znajdziesz odnośnik, który musisz kliknąć w celu aktywacji Twojej subskrypcji."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Czy chcesz się zapisać do tego newslettera ?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Wypisz z newslettera"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Przestań subskrybować"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Zostałeś pomyślnie wypisany."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Twoja rezygnacja z subskrypcji została pomyślnie przyjęta. Została do Ciebie wysłana wiadomość e-mail z linkiem, który musisz kliknąć w celu potwierdzenia rezygnacji."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Czy na pewno chcesz się wypisać z tego newslettera?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Aktualizacja newslettera"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Zaktualizuj subskrypcję"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Twoja subskrypcja została pomyślnie zaktualizowana"
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Twoja aktualizacja z subskrypcji została pomyślnie przyjęta. Została do Ciebie wysłana wiadomość e-mail z linkiem, który musisz kliknąć w celu potwierdzenia subskrypcji."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Obecnie:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Zmiana:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Twoje zmiany zostały zapisane."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Zostałeś zapisany do %s."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Użytkownik %(rs)s zapisany %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Jesteś już zapisany do %s."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Zostałeś wypisany z %s."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Użytkownik %(rs)s został wypisany z %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Nie jesteś zapisany do %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# mmiskiew <mmiskiew@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2014-07-31 18:30+0000\n"
"Last-Translator: mmiskiew <mmiskiew@gmail.com>\n"
"Language-Team: Polish (http://www.transifex.com/dokterbob/django-newsletter/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Wysyłka została zmieniona. Musi zostać zapisana zanim będzie możliwe jej wysłanie. Kliknij OK aby zapisać lub anuluj aby kontynuować edycję."
@@ -0,0 +1,784 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# brunojm <brunojm@gmail.com>, 2013
# brunojm <brunojm@gmail.com>, 2013-2015
# Fábio <fabio@laborautonomo.org>, 2014
# Luan Fonseca de Farias <luanfonceca@gmail.com>, 2013
# Marcelo Zenaide <marcelo.zenaide@gmail.com>, 2013
# dokterbob <mathijs@mathijsfietst.nl>, 2016
# Partec <suzane@tangerinalab.com>, 2014
# Ronaldo Bahia <bahiamartins@hotmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:34+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/dokterbob/django-newsletter/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "A entrada '%s' não contém um endereço de e-mail válido."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "O arquivo de endereços contém referências duplicadas para '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Algumas entradas já foram inscritas."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Endereço de email %(email)s está muito grande, o tamanho máximo é de %(email_length)s caracteres."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "O nome %(name)s está muito grande, o tamanho máximo é de %(name_length)s caracteres"
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "nome"
#: addressimport/parsers.py:200
msgid "display"
msgstr "exibir"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Coluna Nome não encontrada. O nome desta coluna deveria ser 'nome' ou '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "e-mail"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Coluna Email não encontrada. O nome desta coluna deveria ser 'email', 'e-mail' ou '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Não foi possível determinar as colunas corretas no arquivo CSV. Deveria existir um campo chamado 'nome' ou '%(name)s' e um campo chamado 'e-mail' ou '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "A linha '%(row)s' não possui o campo nome ou email."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Erro lendo arquivo vCard: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "O texto informado '%s' não contém um endereço de e-mail."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Algumas entradas não contêm endereços de e-mail."
#: admin.py:63
msgid "Messages"
msgstr "Mensagens"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Assinaturas"
#: admin.py:77
msgid "Submissions"
msgstr "Envios"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "envio"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "boletim"
#: admin.py:112
msgid "publish date"
msgstr "data de publicação"
#: admin.py:138
msgid "Sent."
msgstr "Enviado."
#: admin.py:141
msgid "Delayed submission."
msgstr "Envio atrasado."
#: admin.py:143
msgid "Submitting."
msgstr "Enviando."
#: admin.py:145
msgid "Not sent."
msgstr "Não enviado."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Estado"
#: admin.py:153
msgid "Submission already sent."
msgstr "Sua requisição está sendo enviada."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "Sua requisição está sendo enviada."
#: admin.py:208
msgid "Optional"
msgstr "Opcional"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "mensagem"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Visualização"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Nenhum template HTML associado com o boletim que essa mensagem pertence"
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Assinado"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Assinatura cancelada"
#: admin.py:389
msgid "Unactivated"
msgstr "Desativado"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "data da assinatura"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "data de cancelamento da assinatura"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s usuário assinou com sucesso."
msgstr[1] "%s usuários assinaram com sucesso."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Assinar usuários selecionados"
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s usuários tiveram sua inscrição cancelada."
msgstr[1] "%s usuários tiveram sua inscrição cancelada."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Cancelar assinatura dos usuários selecionados"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s assinaturas foram adicionadas com sucesso."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Tipo de arquivo '%s' desconhecido."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Extensão '%s' desconhecida."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "Nenhuma entrada encontrada neste arquivo."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Boletim"
#: admin_forms.py:73
msgid "Address file"
msgstr "Arquivo de endereços"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Ignorar erros não fatais."
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Você deve confirmar antes de continuar a ação."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Confirmar a importação"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Se um usuário foi selecionado esse campo deve permanecer vazio."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "Selecione um usuário ou um endereço de email."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Essa mensagem já foi publicada em alguma outra submissão. Mensagens só podem ser publicadas uma vez."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "O objeto %(name)s com chave primária %(key)r não existe."
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "Um endereço de e-mail é obrigatório."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "O endereço de e-mail '%(email)s' pertence a um usuário com uma conta neste site. Por favor acesse como esse usuário e tente novamente."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Seu endereço de e-mail já está inscrito."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "Esta inscrição ainda não foi ativada."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Esse endereço de e-mail pertence ao usuário '%(username)s'. Por favor acesse como esse usuário e tente novamente."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Este endereço de e-mail não está inscrito."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Esta inscrição já foi cancelada."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "O código de validação informado não é válido."
#: forms.py:169
msgid "Activation code"
msgstr "Código de ativação"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Enviando boletim para lista de e-mails"
#: models.py:32
msgid "newsletter title"
msgstr "título da lista"
#: models.py:37
msgid "Sender e-mail"
msgstr "E-mail do remetente"
#: models.py:40
msgid "sender"
msgstr "remetente"
#: models.py:40
msgid "Sender name"
msgstr "Nome do remetente"
#: models.py:44
msgid "visible"
msgstr "visível"
#: models.py:48
msgid "send html"
msgstr "enviar html"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Se deseja ou não enviar versões HTML de e-mails."
#: models.py:101
msgid "newsletters"
msgstr "Boletins"
#: models.py:157
msgid "user"
msgstr "usuário"
#: models.py:162
msgid "optional"
msgstr "opcional"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Inscrição %(subscription)s atualizada para %(action)s."
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Informe um e-mail ou nome de usuário!"
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Se o usuário for definido, e-mail deve ser nulo e vice versa."
#: models.py:294
msgid "IP address"
msgstr "Endereço IP"
#: models.py:301
msgid "activation code"
msgstr "código de ativação"
#: models.py:306
msgid "subscribed"
msgstr "assinado"
#: models.py:314
msgid "unsubscribed"
msgstr "assinatura cancelada"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> para %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s para %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "assinatura"
#: models.py:336
msgid "subscriptions"
msgstr "assinaturas"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Ordenação determina a ordem que os artigos são concatenados numa postagem."
#: models.py:441
msgid "sort order"
msgstr "ordenação"
#: models.py:444 models.py:483
msgid "title"
msgstr "título"
#: models.py:445
msgid "text"
msgstr "texto"
#: models.py:448
msgid "link"
msgstr "link"
#: models.py:454
msgid "image"
msgstr "imagem"
#: models.py:465
msgid "article"
msgstr "artigo"
#: models.py:466
msgid "articles"
msgstr "artigos"
#: models.py:484
msgid "slug"
msgstr "slug"
#: models.py:491
msgid "created"
msgstr "criado"
#: models.py:494
msgid "modified"
msgstr "modificado"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s em %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "mensagens"
#: models.py:538
msgid "submissions"
msgstr "envios"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s em %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Submetendo %(submission)s para %(count)d pessoas"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Submetendo mensagem para %s."
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Mensagem %(subscription)s falhou com o erro: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Envio de mensagem %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Se você selecionar nenhum, o sistema automaticamente encontrará os assinantes para você."
#: models.py:675
msgid "recipients"
msgstr "destinatários"
#: models.py:680
msgid "publication date"
msgstr "data de publicação"
#: models.py:684
msgid "publish"
msgstr "publicar"
#: models.py:685
msgid "Publish in archive."
msgstr "Publicar em arquivo."
#: models.py:689
msgid "prepared"
msgstr "Pronto"
#: models.py:693
msgid "sent"
msgstr "enviado"
#: models.py:697
msgid "sending"
msgstr "enviando"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "Histórico"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Ver no site"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Pré-visualizar mensagem"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Início"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Mensagem"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Alteração"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Criar envio"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Texto"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Enviar"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "importar"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Adicionar %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Importar endereço"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Confirmar"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Upload"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Detalhes do Boletim"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Lista de Boletins"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Assinar"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Atualizar inscrições"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Arquivos do Boletim"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "ativar"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Ativar"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Assinar Boletim"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Devido a um erro técnico, não foi possível enviar seu e-mail de confirmação. Isto pode ter ocorrido porque o seu endereço de e-mail é inválido."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Sua assinatura foi ativada com sucesso."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Sua solicitação de inscrição foi recebido com sucesso e um e-mail de ativação foi enviado para você. Nesse e-mail você vai encontrar um link que deve ser acessado a fim de ativar sua assinatura."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Você deseja assinar este boletim?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Cancelar assinatura do Boletim"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Cancelar assinatura"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Sua assinatura foi cancelada com sucesso."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Sua solicitação de cancelamento foi recebida com sucesso. Um e-mail foi enviado para você com um link que deve ser acessado a fim de confirmar o seu cancelamento."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Você realmente deseja cancelar a assinatura desse boletim?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Atualizar Boletim"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Atualizar assinatura"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Sua assinatura foi atualizada com sucesso."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Sua solicitação de atualização foi recebido com sucesso e um e-mail de ativação foi enviado para você. Nesse e-mail você vai encontrar um link que deve ser acessado a fim de atualizar a sua assinatura."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "Atualmente:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Alteração:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Suas alterações foram salvas."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Você foi inscrito em %s."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Usuário %(rs)s assinou a %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Você já está inscrito em %s."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Você foi desinscrito de %s."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Usuário %(rs)s desinscrito de %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Você não está inscrito em %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# brunojm <brunojm@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: brunojm <brunojm@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/dokterbob/django-newsletter/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "O envio foi modificado. Deve ser salvo antes de continuar. Clique 'OK' para continuar com o salvamento, clique 'Cancelar' para continuar editando."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# jumpifzero <jumpifzero@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: jumpifzero <jumpifzero@gmail.com>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/dokterbob/django-newsletter/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "A submissão foi alterada e tem de ser gravada antes de poder submeter. Pressione OK para gravar ou cancelar para continuar a editar."
@@ -0,0 +1,783 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Eugene Akentyev <ak3ntev@gmail.com>, 2013
# dokterbob <mathijs@mathijsfietst.nl>, 2016
# Oleksandr <shtalinberg@mail.ru>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-05 17:58+0100\n"
"PO-Revision-Date: 2016-02-02 13:36+0000\n"
"Last-Translator: dokterbob <mathijs@mathijsfietst.nl>\n"
"Language-Team: Russian (http://www.transifex.com/dokterbob/django-newsletter/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: addressimport/parsers.py:40
#, python-format
msgid "Entry '%s' does not contain a valid e-mail address."
msgstr "Запись '%s' не содержит правильный адрес электронной почты."
#: addressimport/parsers.py:55
#, python-format
msgid "The address file contains duplicate entries for '%s'."
msgstr "Файл с адресами содержит копии '%s'."
#: addressimport/parsers.py:69
msgid "Some entries are already subscribed to."
msgstr "Некоторые записи уже подписаны."
#: addressimport/parsers.py:108
#, python-format
msgid ""
"E-mail address %(email)s too long, maximum length is %(email_length)s "
"characters."
msgstr "Адрес электронной почты %(email)s слишком длинный, максимальная длина: %(email_length)s символов."
#: addressimport/parsers.py:135
#, python-format
msgid "Name %(name)s too long, maximum length is %(name_length)s characters."
msgstr "Имя %(name)s слишком длинное, максимальная длина: %(name_length)s символов."
#: addressimport/parsers.py:196 addressimport/parsers.py:208
#: addressimport/parsers.py:243 models.py:162
msgid "name"
msgstr "имя"
#: addressimport/parsers.py:200
msgid "display"
msgstr "отображение"
#: addressimport/parsers.py:207
#, python-format
msgid ""
"Name column not found. The name of this column should be either 'name' or "
"'%s'."
msgstr "Столбец с именем не найден. Имя этого столбца должно быть 'name' или '%s'."
#: addressimport/parsers.py:219 addressimport/parsers.py:231
#: addressimport/parsers.py:244 models.py:37 models.py:176
msgid "e-mail"
msgstr "электронная почта"
#: addressimport/parsers.py:229
#, python-format
msgid ""
"E-mail column not found. The name of this column should be either 'email', "
"'e-mail' or '%(email)s'."
msgstr "Колонка с электронной почтой не найдена. Имя этой колонки должно быть 'email', 'e-mail' или '%(email)s'."
#: addressimport/parsers.py:239
#, python-format
msgid ""
"Could not properly determine the proper columns in the CSV-file. There "
"should be a field called 'name' or '%(name)s' and one called 'e-mail' or "
"'%(e-mail)s'."
msgstr "Невозможно верно определить колонки в CSV-файле. Необходимы поля с именами 'name' или '%(name)s' и 'e-mail' или '%(e-mail)s'."
#: addressimport/parsers.py:262
#, python-format
msgid "Row with content '%(row)s' does not contain a name and email field."
msgstr "Строка, содержащая '%(row)s', не содержит поля имени и электронной почты."
#: addressimport/parsers.py:288
#, python-format
msgid "Error reading vCard file: %s"
msgstr "Ошибка при чтении vCard файла: %s"
#: addressimport/parsers.py:307
#, python-format
msgid "Entry '%s' contains no email address."
msgstr "В записи '%s' нет адреса электронной почты."
#: addressimport/parsers.py:343
msgid "Some entries have no e-mail address."
msgstr "Некоторые записи не содержат адрес электронной почты."
#: admin.py:63
msgid "Messages"
msgstr "Сообщения"
#: admin.py:71
#: templates/admin/newsletter/subscription/confirmimportform.html:16
#: templates/admin/newsletter/subscription/importform.html:16
msgid "Subscriptions"
msgstr "Подписчики"
#: admin.py:77
msgid "Submissions"
msgstr "Отправки"
#: admin.py:97 models.py:537
msgid "submission"
msgstr "отправка"
#: admin.py:104 admin.py:247 admin.py:365 models.py:100 models.py:296
#: models.py:487 models.py:665
msgid "newsletter"
msgstr "рассылка"
#: admin.py:112
msgid "publish date"
msgstr "дата публикации"
#: admin.py:138
msgid "Sent."
msgstr "Отправлено."
#: admin.py:141
msgid "Delayed submission."
msgstr "Отправка с задержкой."
#: admin.py:143
msgid "Submitting."
msgstr "Отправляется."
#: admin.py:145
msgid "Not sent."
msgstr "Не отправлено."
#: admin.py:146 admin.py:390 admin_forms.py:113
msgid "Status"
msgstr "Статус"
#: admin.py:153
msgid "Submission already sent."
msgstr "Посылка уже отправлена."
#: admin.py:162
msgid "Your submission is being sent."
msgstr "Ваша посылка отправляется."
#: admin.py:208
msgid "Optional"
msgstr "Необязательно"
#: admin.py:235 models.py:460 models.py:512 models.py:668
msgid "message"
msgstr "сообщение"
#: admin.py:239 templates/admin/newsletter/message/change_form.html.py:9
#: templates/admin/newsletter/message/preview.html:13
msgid "Preview"
msgstr "Предпросмотр"
#: admin.py:267 views.py:606
msgid ""
"No HTML template associated with the newsletter this message belongs to."
msgstr "Для рассылки, к которой принадлежит это сообщение, не было найдено HTML шаблона."
#: admin.py:385 admin_forms.py:101
msgid "Subscribed"
msgstr "Подписался"
#: admin.py:387 admin_forms.py:102
msgid "Unsubscribed"
msgstr "Отписанный"
#: admin.py:389
msgid "Unactivated"
msgstr "Неактивированный"
#: admin.py:397 models.py:309
msgid "subscribe date"
msgstr "дата подписки"
#: admin.py:404 models.py:317
msgid "unsubscribe date"
msgstr "дата отписки"
#: admin.py:412
#, python-format
msgid "%s user has been successfully subscribed."
msgid_plural "%s users have been successfully subscribed."
msgstr[0] "%s пользователь был успешно подписан."
msgstr[1] "%s пользователи были успешно подписаны."
msgstr[2] "%s пользователей были успешно подписаны."
msgstr[3] "%s пользователей были успешно подписаны."
#: admin.py:417
msgid "Subscribe selected users"
msgstr "Подписать выбранных пользователей"
#: admin.py:424
#, python-format
msgid "%s user has been successfully unsubscribed."
msgid_plural "%s users have been successfully unsubscribed."
msgstr[0] "%s пользователь был успешно отписан."
msgstr[1] "%s пользователи были успешно отписаны."
msgstr[2] "%s пользователей были успешно отписаны."
msgstr[3] "%s пользователей были успешно отписаны."
#: admin.py:429
msgid "Unsubscribe selected users"
msgstr "Отписать выбранных пользователей"
#: admin.py:484
#, python-format
msgid "%s subscriptions have been successfully added."
msgstr "%s подписчики успешно добавлены."
#: admin_forms.py:41
#, python-format
msgid "File type '%s' was not recognized."
msgstr "Тип файла '%s' не был опознан."
#: admin_forms.py:58
#, python-format
msgid "File extension '%s' was not recognized."
msgstr "Расширение файла '%s' не было опознано."
#: admin_forms.py:62
msgid "No entries could found in this file."
msgstr "Данный файл не содержит записей."
#: admin_forms.py:70
#: templates/admin/newsletter/subscription/confirmimportform.html:12
#: templates/admin/newsletter/subscription/importform.html:12
#: templates/newsletter/common.html:7
#: templates/newsletter/newsletter_detail.html:10
#: templates/newsletter/newsletter_list.html:14
#: templates/newsletter/newsletter_list.html:32
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "Newsletter"
msgstr "Рассылка"
#: admin_forms.py:73
msgid "Address file"
msgstr "Файл с адресами"
#: admin_forms.py:75
msgid "Ignore non-fatal errors"
msgstr "Игнорировать неустранимые ошибки"
#: admin_forms.py:86
msgid "You should confirm in order to continue."
msgstr "Вы должны подтвердить, чтобы продолжить."
#: admin_forms.py:89
#: templates/admin/newsletter/subscription/confirmimportform.html:23
#: templates/admin/newsletter/subscription/confirmimportform.html:28
msgid "Confirm import"
msgstr "Подтвердить импортирование"
#: admin_forms.py:119 admin_forms.py:127
msgid "If a user has been selected this field should remain empty."
msgstr "Поле должно быть пустым, если пользователь был выбран."
#: admin_forms.py:137
msgid "Either a user must be selected or an email address must be specified."
msgstr "Какой-нибудь пользователь должен быть выбран или указан адрес электронной почты."
#: admin_forms.py:162
msgid ""
"This message has already been published in some other submission. Messages "
"can only be published once."
msgstr "Это сообщение уже было опубликовано в другой посылке. Сообщения могут быть опубликованы только раз."
#: admin_utils.py:25
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s объект с первичным ключем %(key)r не существует"
#: forms.py:47 forms.py:106
msgid "An e-mail address is required."
msgstr "Необходим адрес электронной почты."
#: forms.py:55
#, python-format
msgid ""
"The e-mail address '%(email)s' belongs to a user with an account on this "
"site. Please log in as that user and try again."
msgstr "Адрес электронной почты '%(email)s' принадлежит пользователю этого сайта. Пожалуйста зайдите и попробуйте снова."
#: forms.py:72
msgid "Your e-mail address has already been subscribed to."
msgstr "Ваш адрес электронной почты уже подписан."
#: forms.py:97
msgid "This subscription has not yet been activated."
msgstr "Эта подписка еще не активирована."
#: forms.py:114
#, python-format
msgid ""
"This e-mail address belongs to the user '%(username)s'. Please log in as "
"that user and try again."
msgstr "Этот адрес электронной почты принадлежит пользователю '%(username)s'. Пожалуйста войдите и попробуйте еще раз."
#: forms.py:132
msgid "This e-mail address has not been subscribed to."
msgstr "Этот адрес электронной почты не подписан."
#: forms.py:147
msgid "This subscription has already been unsubscribed from."
msgstr "Это подписка уже отменена."
#: forms.py:163
msgid "The validation code supplied by you does not match."
msgstr "Предоставляемый вами код подтверждения не совпадает."
#: forms.py:169
msgid "Activation code"
msgstr "Код активации"
#: jobs/hourly/submit.py:15
msgid "Submitting queued newsletter mailings"
msgstr "Посылка добавлена в очередь рассылок"
#: models.py:32
msgid "newsletter title"
msgstr "заголовок рассылки"
#: models.py:37
msgid "Sender e-mail"
msgstr "Электронная почта отправителя"
#: models.py:40
msgid "sender"
msgstr "отправитель"
#: models.py:40
msgid "Sender name"
msgstr "Имя отправителя"
#: models.py:44
msgid "visible"
msgstr "отображается"
#: models.py:48
msgid "send html"
msgstr "отправить html"
#: models.py:49
msgid "Whether or not to send HTML versions of e-mails."
msgstr "Будете или нет отправлять HTML версию электронных писем."
#: models.py:101
msgid "newsletters"
msgstr "рассылки"
#: models.py:157
msgid "user"
msgstr "пользователь"
#: models.py:162
msgid "optional"
msgstr "необязательно"
#: models.py:206
#, python-format
msgid "Updated subscription %(subscription)s to %(action)s."
msgstr "Обновлена подписка %(subscription)s на %(action)s."
#: models.py:248
msgid "Neither an email nor a username is set. This asks for inconsistency!"
msgstr "Ни один электронный ящик или пользователь не установлены. Здесь несоответствие!"
#: models.py:252
msgid "If user is set, email must be null and vice versa."
msgstr "Если пользователь указан, то электронная почта не нужна и наоборот."
#: models.py:294
msgid "IP address"
msgstr "IP адрес"
#: models.py:301
msgid "activation code"
msgstr "код активации"
#: models.py:306
msgid "subscribed"
msgstr "подписался"
#: models.py:314
msgid "unsubscribed"
msgstr "отписался"
#: models.py:322
#, python-format
msgid "%(name)s <%(email)s> to %(newsletter)s"
msgstr "%(name)s <%(email)s> в %(newsletter)s"
#: models.py:329
#, python-format
msgid "%(email)s to %(newsletter)s"
msgstr "%(email)s в %(newsletter)s"
#: models.py:335
msgid "subscription"
msgstr "подписка"
#: models.py:336
msgid "subscriptions"
msgstr "подписки"
#: models.py:439
msgid ""
"Sort order determines the order in which articles are concatenated in a "
"post."
msgstr "Порядок сортировки определяет порядок, в котором статьи будут собраны в пост."
#: models.py:441
msgid "sort order"
msgstr "порядок сортировки"
#: models.py:444 models.py:483
msgid "title"
msgstr "заголовок"
#: models.py:445
msgid "text"
msgstr "текст"
#: models.py:448
msgid "link"
msgstr "ссылка"
#: models.py:454
msgid "image"
msgstr "изображение"
#: models.py:465
msgid "article"
msgstr "статья"
#: models.py:466
msgid "articles"
msgstr "статьи"
#: models.py:484
msgid "slug"
msgstr "ЧПУ"
#: models.py:491
msgid "created"
msgstr "создан"
#: models.py:494
msgid "modified"
msgstr "изменен"
#: models.py:499
#, python-format
msgid "%(title)s in %(newsletter)s"
msgstr "%(title)s в %(newsletter)s"
#: models.py:513
msgid "messages"
msgstr "сообщения"
#: models.py:538
msgid "submissions"
msgstr "отправки"
#: models.py:541
#, python-format
msgid "%(newsletter)s on %(publish_date)s"
msgstr "%(newsletter)s на %(publish_date)s"
#: models.py:550
#, python-format
msgid "Submitting %(submission)s to %(count)d people"
msgstr "Отправка %(submission)s для %(count)d людей"
#: models.py:597
#, python-format
msgid "Submitting message to: %s."
msgstr "Отправка сообщения для: %s"
#: models.py:606
#, python-format
msgid "Message %(subscription)s failed with error: %(error)s"
msgstr "Отправить сообщение в %(subscription)s не удалось, ошибка: %(error)s"
#: models.py:630
#, python-format
msgid "Submission of message %s"
msgstr "Отправка сообщения %s"
#: models.py:673
msgid ""
"If you select none, the system will automatically find the subscribers for "
"you."
msgstr "Если вы ничего не выберете, тогда система автоматически найдет подписчиков для вас."
#: models.py:675
msgid "recipients"
msgstr "получатели"
#: models.py:680
msgid "publication date"
msgstr "дата публикации"
#: models.py:684
msgid "publish"
msgstr "опубликованная"
#: models.py:685
msgid "Publish in archive."
msgstr "Опубликованные в архиве."
#: models.py:689
msgid "prepared"
msgstr "подготовленные"
#: models.py:693
msgid "sent"
msgstr "отправлено"
#: models.py:697
msgid "sending"
msgstr "отправляется"
#: templates/admin/newsletter/message/change_form.html:7
#: templates/admin/newsletter/newsletter/change_form.html:7
#: templates/admin/newsletter/submission/change_form.html:14
msgid "History"
msgstr "История"
#: templates/admin/newsletter/message/change_form.html:8
#: templates/admin/newsletter/newsletter/change_form.html:8
#: templates/admin/newsletter/submission/change_form.html:15
msgid "View on site"
msgstr "Смотреть на сайте"
#: templates/admin/newsletter/message/preview.html:5
#: templates/admin/newsletter/message/preview.html:19
msgid "Preview message"
msgstr "Предпросмотр сообщения"
#: templates/admin/newsletter/message/preview.html:9
#: templates/admin/newsletter/subscription/confirmimportform.html:8
#: templates/admin/newsletter/subscription/importform.html:8
msgid "Home"
msgstr "Главная"
#: templates/admin/newsletter/message/preview.html:11
msgid "Message"
msgstr "Сообщение"
#: templates/admin/newsletter/message/preview.html:22
#: templates/admin/newsletter/subscription/importform.html:28
msgid "Change"
msgstr "Изменить"
#: templates/admin/newsletter/message/preview.html:23
#: templates/admin/newsletter/subscription/importform.html:29
msgid "Create submission"
msgstr "Создать отправку"
#: templates/admin/newsletter/message/preview.html:26
msgid "HTML"
msgstr "HTML"
#: templates/admin/newsletter/message/preview.html:30
msgid "Text"
msgstr "Текст"
#: templates/admin/newsletter/submission/change_form.html:16
msgid "Submit"
msgstr "Отправить"
#: templates/admin/newsletter/subscription/change_list.html:8
msgid "import"
msgstr "Импортировать"
#: templates/admin/newsletter/subscription/change_list.html:12
#, python-format
msgid "Add %(name)s"
msgstr "Добавить %(name)s"
#: templates/admin/newsletter/subscription/confirmimportform.html:3
#: templates/admin/newsletter/subscription/confirmimportform.html:20
#: templates/admin/newsletter/subscription/importform.html:3
#: templates/admin/newsletter/subscription/importform.html:19
#: templates/admin/newsletter/subscription/importform.html:24
msgid "Import addresses"
msgstr "Импортировать адреса"
#: templates/admin/newsletter/subscription/confirmimportform.html:40
msgid "Confirm"
msgstr "Подтвердить"
#: templates/admin/newsletter/subscription/importform.html:37
msgid "Upload"
msgstr "Загрузить"
#: templates/newsletter/newsletter_detail.html:5
msgid "Newsletter detail"
msgstr "Подробности рассылок"
#: templates/newsletter/newsletter_list.html:5
msgid "Newsletter list"
msgstr "Список рассылок"
#: templates/newsletter/newsletter_list.html:16
#: templates/newsletter/subscription_subscribe.html:23
#: templates/newsletter/subscription_subscribe_user.html:22
msgid "Subscribe"
msgstr "Подписаться"
#: templates/newsletter/newsletter_list.html:27
msgid "Update subscriptions"
msgstr "Обновить подписки"
#: templates/newsletter/submission_archive.html:5
#: templates/newsletter/submission_archive.html:10
msgid "Newsletter archive"
msgstr "Архив рассылок"
#: templates/newsletter/subscription_activate.html:5
#: templates/newsletter/subscription_activate.html:8
#: templates/newsletter/subscription_subscribe_activated.html:5
#: templates/newsletter/subscription_subscribe_activated.html:8
#: templates/newsletter/subscription_unsubscribe_activated.html:5
#: templates/newsletter/subscription_unsubscribe_activated.html:8
#: templates/newsletter/subscription_update_activated.html:5
#: templates/newsletter/subscription_update_activated.html:8
msgid "activate"
msgstr "активировать"
#: templates/newsletter/subscription_activate.html:13
msgid "Activate"
msgstr "Активировать"
#: templates/newsletter/subscription_subscribe.html:5
#: templates/newsletter/subscription_subscribe.html:8
#: templates/newsletter/subscription_subscribe_email_sent.html:5
#: templates/newsletter/subscription_subscribe_email_sent.html:8
#: templates/newsletter/subscription_subscribe_user.html:5
#: templates/newsletter/subscription_subscribe_user.html:8
msgid "Newsletter subscribe"
msgstr "Подписаться на рассылку"
#: templates/newsletter/subscription_subscribe.html:11
#: templates/newsletter/subscription_unsubscribe.html:11
#: templates/newsletter/subscription_update.html:11
msgid ""
"Due to a technical error we were not able to submit your confirmation email."
" This could be because your email address is invalid."
msgstr "Из-за технической ошибки письмо с подтверждением не было отправлено. Возможно ваш адрес электронной почты неправильный."
#: templates/newsletter/subscription_subscribe_activated.html:10
msgid "Your subscription has successfully been activated."
msgstr "Ваша подписка была успешно активирована."
#: templates/newsletter/subscription_subscribe_email_sent.html:10
msgid ""
"Your subscription request was successfully received and an activation email "
"has been sent to you. In that email you will find a link which you need to "
"follow in order to activate your subscription."
msgstr "Ваш запрос на подписку был успешно получен, и email для активации был отправлен Вам. В нем вы должны найти ссылку и перейти по ней, чтобы подтвердить свое решение активировать ​​подписку."
#: templates/newsletter/subscription_subscribe_user.html:19
msgid "Do you want to subscribe to this newsletter?"
msgstr "Вы хотите подписаться на эту рассылку?"
#: templates/newsletter/subscription_unsubscribe.html:5
#: templates/newsletter/subscription_unsubscribe.html:8
#: templates/newsletter/subscription_unsubscribe_email_sent.html:5
#: templates/newsletter/subscription_unsubscribe_email_sent.html:8
#: templates/newsletter/subscription_unsubscribe_user.html:5
#: templates/newsletter/subscription_unsubscribe_user.html:8
msgid "Newsletter unsubscribe"
msgstr "Отписаться от рассылки"
#: templates/newsletter/subscription_unsubscribe.html:23
#: templates/newsletter/subscription_unsubscribe_user.html:23
msgid "Unsubscribe"
msgstr "Отписаться"
#: templates/newsletter/subscription_unsubscribe_activated.html:10
msgid "You have successfully been unsubscribed."
msgstr "Вы успешно отписались."
#: templates/newsletter/subscription_unsubscribe_email_sent.html:10
msgid ""
"Your unsubscription request has successfully been received. An email has "
"been sent to you with a link you need to follow in order to confirm your "
"unsubscription."
msgstr "Ваш запрос на отписку был успешно получен.Сообщение со ссылкой было отправлено Вам, вы должны перейти по ней, чтобы подтвердить свою ​​отписку."
#: templates/newsletter/subscription_unsubscribe_user.html:20
msgid "Do you want to unsubscribe from this newsletter?"
msgstr "Вы хотите отменить подписку на эту рассылку?"
#: templates/newsletter/subscription_update.html:5
#: templates/newsletter/subscription_update.html:8
#: templates/newsletter/subscription_update_email_sent.html:5
#: templates/newsletter/subscription_update_email_sent.html:8
msgid "Newsletter update"
msgstr "Обновление рассылки"
#: templates/newsletter/subscription_update.html:23
msgid "Update subscription"
msgstr "Обновить подписку"
#: templates/newsletter/subscription_update_activated.html:10
msgid "Your subscription has successfully been updated."
msgstr "Ваша подписка успешно обновлена."
#: templates/newsletter/subscription_update_email_sent.html:10
msgid ""
"Your update request was successfully received and an activation email has "
"been sent to you. In that email you will find a link which you need to "
"follow in order to update your subscription."
msgstr "Ваш запрос на обновление был успешно получен, сообщение для активации было отправлено Вам. В нем вы должны найти ссылку и перейти по ней, чтобы подтвердить свое решение обновить ​​подписку."
#: templates/widget/image.html:2
msgid "Currently:"
msgstr "В текущий момент:"
#: templates/widget/image.html:4
msgid "Change:"
msgstr "Изменить:"
#: views.py:114
msgid "Your changes have been saved."
msgstr "Ваши изменения сохранены."
#: views.py:305
#, python-format
msgid "You have been subscribed to %s."
msgstr "Вы подписались на %s."
#: views.py:309
#, python-format
msgid "User %(rs)s subscribed to %(my_newsletter)s."
msgstr "Пользователь %(rs)s подписался на %(my_newsletter)s."
#: views.py:319
#, python-format
msgid "You are already subscribed to %s."
msgstr "Вы уже подписаны на %s."
#: views.py:344
#, python-format
msgid "You have been unsubscribed from %s."
msgstr "Вы отписались от %s."
#: views.py:348
#, python-format
msgid "User %(rs)s unsubscribed from %(my_newsletter)s."
msgstr "Пользователь %(rs)s отписался от %(my_newsletter)s."
#: views.py:361
#, python-format
msgid "You are not subscribed to %s."
msgstr "Вы не подписаны на %s."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Eugene Akentyev <ak3ntev@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2013-11-20 12:25+0000\n"
"Last-Translator: Eugene Akentyev <ak3ntev@gmail.com>\n"
"Language-Team: Russian (http://www.transifex.com/dokterbob/django-newsletter/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "Посылка изменилась. Необходимо сохранить перед отправкой. Нажмите OK, чтобы сохранить, нажмите отменить, чтобы продолжить редактирование."
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# mozillazg <opensource.mozillazg@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: django-newsletter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-19 21:55+0100\n"
"PO-Revision-Date: 2014-01-21 08:15+0000\n"
"Last-Translator: mozillazg <opensource.mozillazg@gmail.com>\n"
"Language-Team: Chinese (China) (http://www.transifex.com/dokterbob/django-newsletter/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: static/newsletter/admin/js/submit_interface.js:12
msgid ""
"The submission has been changed. It has to be saved before you can submit. "
"Click OK to proceed with saving, click cancel to continue editing."
msgstr "提交已更改。在您提交前它必须被保存。点击确定继续保存,点击取消继续编辑。"
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# management commands for the newsletter
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# management commands for the newsletter
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
"""
actual sending of the submissions
"""
import logging
from django.core.management.base import BaseCommand
from django.utils.translation import ugettext as _
from newsletter.models import Submission
class Command(BaseCommand):
help = _("Submit pending messages.")
def handle(self, *args, **options):
# Setup logging based on verbosity: 1 -> INFO, >1 -> DEBUG
verbosity = int(options['verbosity'])
logger = logging.getLogger('newsletter')
if verbosity == 0:
logger.setLevel(logging.WARN)
elif verbosity == 1: # default
logger.setLevel(logging.INFO)
elif verbosity > 1:
logger.setLevel(logging.DEBUG)
if verbosity > 2:
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.info(_('Submitting queued newsletter mailings'))
# Call submission
Submission.submit_queue()
@@ -0,0 +1,135 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import sorl.thumbnail.fields
import newsletter.utils
import django.utils.timezone
from django.conf import settings
class Migration(migrations.Migration):
dependencies = [
('sites', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Article',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('sortorder', models.PositiveIntegerField(help_text='Sort order determines the order in which articles are concatenated in a post.', verbose_name='sort order', db_index=True)),
('title', models.CharField(max_length=200, verbose_name='title')),
('text', models.TextField(verbose_name='text')),
('url', models.URLField(null=True, verbose_name='link', blank=True)),
('image', sorl.thumbnail.fields.ImageField(upload_to='newsletter/images/%Y/%m/%d', null=True, verbose_name='image', blank=True)),
],
options={
'ordering': ('sortorder',),
'verbose_name': 'article',
'verbose_name_plural': 'articles',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Message',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('title', models.CharField(max_length=200, verbose_name='title')),
('slug', models.SlugField(verbose_name='slug')),
('date_create', models.DateTimeField(auto_now_add=True, verbose_name='created')),
('date_modify', models.DateTimeField(auto_now=True, verbose_name='modified')),
],
options={
'verbose_name': 'message',
'verbose_name_plural': 'messages',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Newsletter',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('title', models.CharField(max_length=200, verbose_name='newsletter title')),
('slug', models.SlugField(unique=True)),
('email', models.EmailField(help_text='Sender e-mail', max_length=75, verbose_name='e-mail')),
('sender', models.CharField(help_text='Sender name', max_length=200, verbose_name='sender')),
('visible', models.BooleanField(default=True, db_index=True, verbose_name='visible')),
('send_html', models.BooleanField(default=True, help_text='Whether or not to send HTML versions of e-mails.', verbose_name='send html')),
('site', models.ManyToManyField(default=newsletter.utils.get_default_sites, to='sites.Site')),
],
options={
'verbose_name': 'newsletter',
'verbose_name_plural': 'newsletters',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Submission',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('publish_date', models.DateTimeField(default=django.utils.timezone.now, null=True, verbose_name='publication date', db_index=True, blank=True)),
('publish', models.BooleanField(default=True, help_text='Publish in archive.', db_index=True, verbose_name='publish')),
('prepared', models.BooleanField(default=False, verbose_name='prepared', db_index=True, editable=False)),
('sent', models.BooleanField(default=False, verbose_name='sent', db_index=True, editable=False)),
('sending', models.BooleanField(default=False, verbose_name='sending', db_index=True, editable=False)),
('message', models.ForeignKey(verbose_name='message', to='newsletter.Message', on_delete=models.CASCADE)),
('newsletter', models.ForeignKey(editable=False, to='newsletter.Newsletter', verbose_name='newsletter', on_delete=models.CASCADE)),
],
options={
'verbose_name': 'submission',
'verbose_name_plural': 'submissions',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Subscription',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name_field', models.CharField(db_column='name', max_length=30, blank=True, help_text='optional', null=True, verbose_name='name')),
('email_field', models.EmailField(db_column='email', max_length=75, blank=True, null=True, verbose_name='e-mail', db_index=True)),
('ip', models.IPAddressField(null=True, verbose_name='IP address', blank=True)),
('create_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('activation_code', models.CharField(default=newsletter.utils.make_activation_code, max_length=40, verbose_name='activation code')),
('subscribed', models.BooleanField(default=False, db_index=True, verbose_name='subscribed')),
('subscribe_date', models.DateTimeField(null=True, verbose_name='subscribe date', blank=True)),
('unsubscribed', models.BooleanField(default=False, db_index=True, verbose_name='unsubscribed')),
('unsubscribe_date', models.DateTimeField(null=True, verbose_name='unsubscribe date', blank=True)),
('newsletter', models.ForeignKey(verbose_name='newsletter', to='newsletter.Newsletter', on_delete=models.CASCADE)),
('user', models.ForeignKey(verbose_name='user', blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)),
],
options={
'verbose_name': 'subscription',
'verbose_name_plural': 'subscriptions',
},
bases=(models.Model,),
),
migrations.AlterUniqueTogether(
name='subscription',
unique_together=set([('user', 'email_field', 'newsletter')]),
),
migrations.AddField(
model_name='submission',
name='subscriptions',
field=models.ManyToManyField(help_text='If you select none, the system will automatically find the subscribers for you.', to='newsletter.Subscription', db_index=True, verbose_name='recipients', blank=True),
preserve_default=True,
),
migrations.AddField(
model_name='message',
name='newsletter',
field=models.ForeignKey(verbose_name='newsletter', to='newsletter.Newsletter', on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AlterUniqueTogether(
name='message',
unique_together=set([('slug', 'newsletter')]),
),
migrations.AddField(
model_name='article',
name='post',
field=models.ForeignKey(related_name='articles', verbose_name='message', to='newsletter.Message', on_delete=models.CASCADE),
preserve_default=True,
),
]
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.db.models.manager
import django.contrib.sites.managers
class Migration(migrations.Migration):
dependencies = [
('newsletter', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='newsletter',
name='email',
field=models.EmailField(help_text='Sender e-mail', max_length=254, verbose_name='e-mail'),
),
migrations.AlterField(
model_name='subscription',
name='email_field',
field=models.EmailField(db_column='email', max_length=254, blank=True, null=True, verbose_name='e-mail', db_index=True),
),
]
# if using Django version 1.8 and later also apply AlterModelManagers and AlterField to GenericIPAddressField
if django.VERSION >= (1,8):
operations += [
migrations.AlterModelManagers(
name='newsletter',
managers=[
('objects', django.db.models.manager.Manager()),
('on_site', django.contrib.sites.managers.CurrentSiteManager()),
],
),
migrations.AlterField(
model_name='subscription',
name='ip',
field=models.GenericIPAddressField(null=True, verbose_name='IP address', blank=True),
)
]
@@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
logger = logging.getLogger(__name__)
from django.db import migrations, models
def renumerate_article_sortorder(apps, schema_editor):
""" Renumerate articles for consistent and guaranteed unique sortorder. """
Message = apps.get_model('newsletter', 'Message')
for message in Message.objects.all():
for index, article in enumerate(message.articles.all()):
# We're using the fact that articles are ordered by default
article.sortorder = (index + 1) * 10
article.save()
class Migration(migrations.Migration):
dependencies = [
('newsletter', '0002_auto_20150416_1555'),
]
operations = [
migrations.AlterField(
model_name='article',
name='sortorder',
field=models.PositiveIntegerField(help_text='Sort order determines the order in which articles are concatenated in a post.', verbose_name='sort order', blank=True),
),
migrations.RunPython(renumerate_article_sortorder),
migrations.AlterUniqueTogether(
name='article',
unique_together=set([('post', 'sortorder')]),
),
]
@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import newsletter.models
class Migration(migrations.Migration):
dependencies = [
('newsletter', '0003_auto_20160226_1518'),
]
operations = [
migrations.AlterField(
model_name='message',
name='newsletter',
field=models.ForeignKey(default=newsletter.models.get_default_newsletter,
verbose_name='newsletter',
to='newsletter.Newsletter',
on_delete=models.CASCADE),
),
]
@@ -0,0 +1,18 @@
# Generated by Django 2.1 on 2018-10-26 12:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('newsletter', '0004_auto_20180407_1043'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='subscriptions',
field=models.ManyToManyField(blank=True, db_index=True, help_text='If you select none, the system will automatically find the subscribers for you.', limit_choices_to={'subscribed': True}, to='newsletter.Subscription', verbose_name='recipients'),
),
]
@@ -0,0 +1,732 @@
import logging
import time
import django
from django.conf import settings
from django.contrib.sites.models import Site
from django.contrib.sites.managers import CurrentSiteManager
from django.core.mail import EmailMultiAlternatives
from django.db import models
from django.template.loader import select_template
from django.utils.encoding import python_2_unicode_compatible
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.utils.timezone import now
from sorl.thumbnail import ImageField
from distutils.version import LooseVersion
from .compat import get_context, reverse
from .utils import (
make_activation_code, get_default_sites, ACTIONS
)
logger = logging.getLogger(__name__)
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
@python_2_unicode_compatible
class Newsletter(models.Model):
site = models.ManyToManyField(Site, default=get_default_sites)
title = models.CharField(
max_length=200, verbose_name=_('newsletter title')
)
slug = models.SlugField(db_index=True, unique=True)
email = models.EmailField(
verbose_name=_('e-mail'), help_text=_('Sender e-mail')
)
sender = models.CharField(
max_length=200, verbose_name=_('sender'), help_text=_('Sender name')
)
visible = models.BooleanField(
default=True, verbose_name=_('visible'), db_index=True
)
send_html = models.BooleanField(
default=True, verbose_name=_('send html'),
help_text=_('Whether or not to send HTML versions of e-mails.')
)
objects = models.Manager()
# Automatically filter the current site
on_site = CurrentSiteManager()
def get_templates(self, action):
"""
Return a subject, text, HTML tuple with e-mail templates for
a particular action. Returns a tuple with subject, text and e-mail
template.
"""
assert action in ACTIONS + ('message', ), 'Unknown action: %s' % action
# Common substitutions for filenames
tpl_subst = {
'action': action,
'newsletter': self.slug
}
# Common root path for all the templates
tpl_root = 'newsletter/message/'
subject_template = select_template([
tpl_root + '%(newsletter)s/%(action)s_subject.txt' % tpl_subst,
tpl_root + '%(action)s_subject.txt' % tpl_subst,
])
text_template = select_template([
tpl_root + '%(newsletter)s/%(action)s.txt' % tpl_subst,
tpl_root + '%(action)s.txt' % tpl_subst,
])
if self.send_html:
html_template = select_template([
tpl_root + '%(newsletter)s/%(action)s.html' % tpl_subst,
tpl_root + '%(action)s.html' % tpl_subst,
])
else:
# HTML templates are not required
html_template = None
return (subject_template, text_template, html_template)
def __str__(self):
return self.title
class Meta:
verbose_name = _('newsletter')
verbose_name_plural = _('newsletters')
def get_absolute_url(self):
return (
'newsletter_detail', (),
{'newsletter_slug': self.slug}
)
def subscribe_url(self):
return (
'newsletter_subscribe_request', (),
{'newsletter_slug': self.slug}
)
def unsubscribe_url(self):
return (
'newsletter_unsubscribe_request', (),
{'newsletter_slug': self.slug}
)
def update_url(self):
return (
'newsletter_update_request', (),
{'newsletter_slug': self.slug}
)
def archive_url(self):
return (
'newsletter_archive', (),
{'newsletter_slug': self.slug}
)
def get_sender(self):
return get_address(self.sender, self.email)
def get_subscriptions(self):
logger.debug(u'Looking up subscribers for %s', self)
return Subscription.objects.filter(newsletter=self, subscribed=True)
@classmethod
def get_default(cls):
try:
return cls.objects.all()[0].pk
except IndexError:
return None
@python_2_unicode_compatible
class Subscription(models.Model):
user = models.ForeignKey(
AUTH_USER_MODEL, blank=True, null=True, verbose_name=_('user'),
on_delete=models.CASCADE
)
name_field = models.CharField(
db_column='name', max_length=30, blank=True, null=True,
verbose_name=_('name'), help_text=_('optional')
)
def get_name(self):
if self.user:
return self.user.get_full_name()
return self.name_field
def set_name(self, name):
if not self.user:
self.name_field = name
name = property(get_name, set_name)
email_field = models.EmailField(
db_column='email', verbose_name=_('e-mail'), db_index=True,
blank=True, null=True
)
def get_email(self):
if self.user:
return self.user.email
return self.email_field
def set_email(self, email):
if not self.user:
self.email_field = email
email = property(get_email, set_email)
def update(self, action):
"""
Update subscription according to requested action:
subscribe/unsubscribe/update/, then save the changes.
"""
assert action in ('subscribe', 'update', 'unsubscribe')
# If a new subscription or update, make sure it is subscribed
# Else, unsubscribe
if action == 'subscribe' or action == 'update':
self.subscribed = True
else:
self.unsubscribed = True
logger.debug(
_(u'Updated subscription %(subscription)s to %(action)s.'),
{
'subscription': self,
'action': action
}
)
# This triggers the subscribe() and/or unsubscribe() methods, taking
# care of stuff like maintaining the (un)subscribe date.
self.save()
def _subscribe(self):
"""
Internal helper method for managing subscription state
during subscription.
"""
logger.debug(u'Subscribing subscription %s.', self)
self.subscribe_date = now()
self.subscribed = True
self.unsubscribed = False
def _unsubscribe(self):
"""
Internal helper method for managing subscription state
during unsubscription.
"""
logger.debug(u'Unsubscribing subscription %s.', self)
self.subscribed = False
self.unsubscribed = True
self.unsubscribe_date = now()
def save(self, *args, **kwargs):
"""
Perform some basic validation and state maintenance of Subscription.
TODO: Move this code to a more suitable place (i.e. `clean()`) and
cleanup the code. Refer to comment below and
https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.clean
"""
assert self.user or self.email_field, \
_('Neither an email nor a username is set. This asks for '
'inconsistency!')
assert ((self.user and not self.email_field) or
(self.email_field and not self.user)), \
_('If user is set, email must be null and vice versa.')
# This is a lame way to find out if we have changed but using Django
# API internals is bad practice. This is necessary to discriminate
# from a state where we have never been subscribed but is mostly for
# backward compatibility. It might be very useful to make this just
# one attribute 'subscribe' later. In this case unsubscribed can be
# replaced by a method property.
if self.pk:
assert(Subscription.objects.filter(pk=self.pk).count() == 1)
subscription = Subscription.objects.get(pk=self.pk)
old_subscribed = subscription.subscribed
old_unsubscribed = subscription.unsubscribed
# If we are subscribed now and we used not to be so, subscribe.
# If we user to be unsubscribed but are not so anymore, subscribe.
if ((self.subscribed and not old_subscribed) or
(old_unsubscribed and not self.unsubscribed)):
self._subscribe()
assert not self.unsubscribed
assert self.subscribed
# If we are unsubcribed now and we used not to be so, unsubscribe.
# If we used to be subscribed but are not subscribed anymore,
# unsubscribe.
elif ((self.unsubscribed and not old_unsubscribed) or
(old_subscribed and not self.subscribed)):
self._unsubscribe()
assert not self.subscribed
assert self.unsubscribed
else:
if self.subscribed:
self._subscribe()
elif self.unsubscribed:
self._unsubscribe()
super(Subscription, self).save(*args, **kwargs)
ip = models.GenericIPAddressField(_("IP address"), blank=True, null=True)
newsletter = models.ForeignKey(
Newsletter, verbose_name=_('newsletter'), on_delete=models.CASCADE
)
create_date = models.DateTimeField(editable=False, default=now)
activation_code = models.CharField(
verbose_name=_('activation code'), max_length=40,
default=make_activation_code
)
subscribed = models.BooleanField(
default=False, verbose_name=_('subscribed'), db_index=True
)
subscribe_date = models.DateTimeField(
verbose_name=_("subscribe date"), null=True, blank=True
)
# This should be a pseudo-field, I reckon.
unsubscribed = models.BooleanField(
default=False, verbose_name=_('unsubscribed'), db_index=True
)
unsubscribe_date = models.DateTimeField(
verbose_name=_("unsubscribe date"), null=True, blank=True
)
def __str__(self):
if self.name:
return _(u"%(name)s <%(email)s> to %(newsletter)s") % {
'name': self.name,
'email': self.email,
'newsletter': self.newsletter
}
else:
return _(u"%(email)s to %(newsletter)s") % {
'email': self.email,
'newsletter': self.newsletter
}
class Meta:
verbose_name = _('subscription')
verbose_name_plural = _('subscriptions')
unique_together = ('user', 'email_field', 'newsletter')
def get_recipient(self):
return get_address(self.name, self.email)
def send_activation_email(self, action):
assert action in ACTIONS, 'Unknown action: %s' % action
(subject_template, text_template, html_template) = \
self.newsletter.get_templates(action)
variable_dict = {
'subscription': self,
'site': Site.objects.get_current(),
'newsletter': self.newsletter,
'date': self.subscribe_date,
'STATIC_URL': settings.STATIC_URL,
'MEDIA_URL': settings.MEDIA_URL
}
unescaped_context = get_context(variable_dict, autoescape=False)
subject = subject_template.render(unescaped_context).strip()
text = text_template.render(unescaped_context)
message = EmailMultiAlternatives(
subject, text,
from_email=self.newsletter.get_sender(),
to=[self.email]
)
if html_template:
escaped_context = get_context(variable_dict)
message.attach_alternative(
html_template.render(escaped_context), "text/html"
)
message.send()
logger.debug(
u'Activation email sent for action "%(action)s" to %(subscriber)s '
u'with activation code "%(action_code)s".', {
'action_code': self.activation_code,
'action': action,
'subscriber': self
}
)
def subscribe_activate_url(self):
return ('newsletter_update_activate', (), {
'newsletter_slug': self.newsletter.slug,
'email': self.email,
'action': 'subscribe',
'activation_code': self.activation_code
})
def unsubscribe_activate_url(self):
return ('newsletter_update_activate', (), {
'newsletter_slug': self.newsletter.slug,
'email': self.email,
'action': 'unsubscribe',
'activation_code': self.activation_code
})
def update_activate_url(self):
return ('newsletter_update_activate', (), {
'newsletter_slug': self.newsletter.slug,
'email': self.email,
'action': 'update',
'activation_code': self.activation_code
})
@python_2_unicode_compatible
class Article(models.Model):
"""
An Article within a Message which will be send through a Submission.
"""
sortorder = models.PositiveIntegerField(
help_text=_('Sort order determines the order in which articles are '
'concatenated in a post.'),
verbose_name=_('sort order'), blank=True
)
title = models.CharField(max_length=200, verbose_name=_('title'))
text = models.TextField(verbose_name=_('text'))
url = models.URLField(
verbose_name=_('link'), blank=True, null=True
)
# Make this a foreign key for added elegance
image = ImageField(
upload_to='newsletter/images/%Y/%m/%d', blank=True, null=True,
verbose_name=_('image')
)
# Message this article is associated with
# TODO: Refactor post to message (post is legacy notation).
post = models.ForeignKey(
'Message', verbose_name=_('message'), related_name='articles',
on_delete=models.CASCADE
)
class Meta:
ordering = ('sortorder',)
verbose_name = _('article')
verbose_name_plural = _('articles')
unique_together = ('post', 'sortorder')
def __str__(self):
return self.title
def save(self, **kwargs):
if self.sortorder is None:
# If saving a new object get the next available Article ordering
# as to assure uniqueness.
self.sortorder = self.post.get_next_article_sortorder()
super(Article, self).save()
def get_default_newsletter():
return Newsletter.get_default()
@python_2_unicode_compatible
class Message(models.Model):
""" Message as sent through a Submission. """
title = models.CharField(max_length=200, verbose_name=_('title'))
slug = models.SlugField(verbose_name=_('slug'))
newsletter = models.ForeignKey(
Newsletter, verbose_name=_('newsletter'), on_delete=models.CASCADE, default=get_default_newsletter
)
date_create = models.DateTimeField(
verbose_name=_('created'), auto_now_add=True, editable=False
)
date_modify = models.DateTimeField(
verbose_name=_('modified'), auto_now=True, editable=False
)
class Meta:
verbose_name = _('message')
verbose_name_plural = _('messages')
unique_together = ('slug', 'newsletter')
def __str__(self):
try:
return _(u"%(title)s in %(newsletter)s") % {
'title': self.title,
'newsletter': self.newsletter
}
except Newsletter.DoesNotExist:
logger.warning('No newsletter has been set for this message yet.')
return self.title
def get_next_article_sortorder(self):
""" Get next available sortorder for Article. """
next_order = self.articles.aggregate(
models.Max('sortorder')
)['sortorder__max']
if next_order:
return next_order + 10
else:
return 10
@cached_property
def _templates(self):
"""Return a (subject_template, text_template, html_template) tuple."""
return self.newsletter.get_templates('message')
@property
def subject_template(self):
return self._templates[0]
@property
def text_template(self):
return self._templates[1]
@property
def html_template(self):
return self._templates[2]
@classmethod
def get_default(cls):
try:
return cls.objects.order_by('-date_create').all()[0]
except IndexError:
return None
@python_2_unicode_compatible
class Submission(models.Model):
"""
Submission represents a particular Message as it is being submitted
to a list of Subscribers. This is where actual queueing and submission
happen.
"""
class Meta:
verbose_name = _('submission')
verbose_name_plural = _('submissions')
def __str__(self):
return _(u"%(newsletter)s on %(publish_date)s") % {
'newsletter': self.message,
'publish_date': self.publish_date
}
@cached_property
def extra_headers(self):
return {
'List-Unsubscribe': 'http://%s%s' % (
Site.objects.get_current().domain,
reverse('newsletter_unsubscribe_request',
args=[self.message.newsletter.slug])
),
}
def submit(self):
subscriptions = self.subscriptions.filter(subscribed=True)
logger.info(
ugettext(u"Submitting %(submission)s to %(count)d people"),
{'submission': self, 'count': subscriptions.count()}
)
assert self.publish_date < now(), \
'Something smells fishy; submission time in future.'
self.sending = True
self.save()
try:
for idx, subscription in enumerate(subscriptions, start=1):
if hasattr(settings, 'NEWSLETTER_EMAIL_DELAY'):
time.sleep(settings.NEWSLETTER_EMAIL_DELAY)
if hasattr(settings, 'NEWSLETTER_BATCH_SIZE') and settings.NEWSLETTER_BATCH_SIZE > 0:
if idx % settings.NEWSLETTER_BATCH_SIZE == 0:
time.sleep(settings.NEWSLETTER_BATCH_DELAY)
self.send_message(subscription)
self.sent = True
finally:
self.sending = False
self.save()
def send_message(self, subscription):
variable_dict = {
'subscription': subscription,
'site': Site.objects.get_current(),
'submission': self,
'message': self.message,
'newsletter': self.newsletter,
'date': self.publish_date,
'STATIC_URL': settings.STATIC_URL,
'MEDIA_URL': settings.MEDIA_URL
}
unescaped_context = get_context(variable_dict, autoescape=False)
subject = self.message.subject_template.render(
unescaped_context).strip()
text = self.message.text_template.render(unescaped_context)
message = EmailMultiAlternatives(
subject, text,
from_email=self.newsletter.get_sender(),
to=[subscription.get_recipient()],
headers=self.extra_headers,
)
if self.message.html_template:
escaped_context = get_context(variable_dict)
message.attach_alternative(
self.message.html_template.render(escaped_context),
"text/html"
)
try:
logger.debug(
ugettext(u'Submitting message to: %s.'),
subscription
)
message.send()
except Exception as e:
# TODO: Test coverage for this branch.
logger.error(
ugettext(u'Message %(subscription)s failed '
u'with error: %(error)s'),
{'subscription': subscription,
'error': e}
)
@classmethod
def submit_queue(cls):
todo = cls.objects.filter(
prepared=True, sent=False, sending=False,
publish_date__lt=now()
)
for submission in todo:
submission.submit()
@classmethod
def from_message(cls, message):
logger.debug(ugettext('Submission of message %s'), message)
submission = cls()
submission.message = message
submission.newsletter = message.newsletter
submission.save()
try:
submission.subscriptions.set(message.newsletter.get_subscriptions())
except AttributeError: # Django < 1.10
submission.subscriptions = message.newsletter.get_subscriptions()
return submission
def save(self, **kwargs):
""" Set the newsletter from associated message upon saving. """
assert self.message.newsletter
self.newsletter = self.message.newsletter
return super(Submission, self).save()
def get_absolute_url(self):
assert self.newsletter.slug
assert self.message.slug
return (
'newsletter_archive_detail', (), {
'newsletter_slug': self.newsletter.slug,
'year': self.publish_date.year,
'month': self.publish_date.month,
'day': self.publish_date.day,
'slug': self.message.slug
}
)
newsletter = models.ForeignKey(
Newsletter, verbose_name=_('newsletter'), editable=False,
on_delete=models.CASCADE
)
message = models.ForeignKey(
Message, verbose_name=_('message'), editable=True, null=False,
on_delete=models.CASCADE
)
subscriptions = models.ManyToManyField(
'Subscription',
help_text=_('If you select none, the system will automatically find '
'the subscribers for you.'),
blank=True, db_index=True, verbose_name=_('recipients'),
limit_choices_to={'subscribed': True}
)
publish_date = models.DateTimeField(
verbose_name=_('publication date'), blank=True, null=True,
default=now, db_index=True
)
publish = models.BooleanField(
default=True, verbose_name=_('publish'),
help_text=_('Publish in archive.'), db_index=True
)
prepared = models.BooleanField(
default=False, verbose_name=_('prepared'),
db_index=True, editable=False
)
sent = models.BooleanField(
default=False, verbose_name=_('sent'),
db_index=True, editable=False
)
sending = models.BooleanField(
default=False, verbose_name=_('sending'),
db_index=True, editable=False
)
def get_address(name, email):
# Converting name to ascii for compatibility with django < 1.9.
# Remove this when django 1.8 is no longer supported.
if LooseVersion(django.get_version()) < LooseVersion('1.9'):
name = name.encode('ascii', 'ignore').decode('ascii').strip()
if name:
return u'%s <%s>' % (name, email)
else:
return u'%s' % email
@@ -0,0 +1,105 @@
from importlib import import_module
from django.conf import settings as django_settings
from django.core.exceptions import ImproperlyConfigured
from .utils import Singleton
class Settings(object):
"""
A settings object that proxies settings and handles defaults, inspired
by `django-appconf` and the way it works in `django-rest-framework`.
By default, a single instance of this class is created as `<app>_settings`,
from which `<APP>_SETTING_NAME` can be accessed as `SETTING_NAME`, i.e.::
from myapp.settings import myapp_settings
if myapp_settings.SETTING_NAME:
# DO FUNKY DANCE
If a setting has not been explicitly defined in Django's settings, defaults
can be specified as `DEFAULT_SETTING_NAME` class variable or property.
"""
__metaclass__ = Singleton
def __init__(self):
"""
Assert app-specific prefix.
"""
assert hasattr(self, 'settings_prefix'), 'No prefix specified.'
def __getattr__(self, attr):
"""
Return Django setting `PREFIX_SETTING` if explicitly specified,
otherwise return `PREFIX_SETTING_DEFAULT` if specified.
"""
if attr.isupper():
# Require settings to have uppercase characters
try:
setting = getattr(
django_settings,
'%s_%s' % (self.settings_prefix, attr),
)
except AttributeError:
if not attr.startswith('DEFAULT_'):
setting = getattr(self, 'DEFAULT_%s' % attr)
else:
raise
return setting
else:
# Default behaviour
raise AttributeError(
'No setting or default available for \'%s\'' % attr
)
class NewsletterSettings(Settings):
""" Django-newsletter specific settings. """
settings_prefix = 'NEWSLETTER'
DEFAULT_CONFIRM_EMAIL = True
@property
def DEFAULT_CONFIRM_EMAIL_SUBSCRIBE(self):
return self.CONFIRM_EMAIL
@property
def DEFAULT_CONFIRM_EMAIL_UNSUBSCRIBE(self):
return self.CONFIRM_EMAIL
@property
def DEFAULT_CONFIRM_EMAIL_UPDATE(self):
return self.CONFIRM_EMAIL
@property
def RICHTEXT_WIDGET(self):
# Import and set the richtext field
NEWSLETTER_RICHTEXT_WIDGET = getattr(
django_settings, "NEWSLETTER_RICHTEXT_WIDGET", ""
)
if NEWSLETTER_RICHTEXT_WIDGET:
try:
module, attr = NEWSLETTER_RICHTEXT_WIDGET.rsplit(".", 1)
mod = import_module(module)
return getattr(mod, attr)
except Exception as e:
# Catch ImportError and other exceptions too
# (e.g. user sets setting to an integer)
raise ImproperlyConfigured(
"Error while importing setting "
"NEWSLETTER_RICHTEXT_WIDGET %r: %s" % (
NEWSLETTER_RICHTEXT_WIDGET, e
)
)
return None
newsletter_settings = NewsletterSettings()
Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

@@ -0,0 +1,26 @@
var SubmitInterface = {
changed: false,
init: function(submitname) {
var submitlink = django.jQuery(submitname);
var initial_href = submitlink.attr('href');
submitlink.click(function() {
SubmitInterface.process(initial_href);
});
submitlink.attr('href', '#');
django.jQuery('form:first :input').change(function() {
SubmitInterface.changed = true;
});
},
process: function(href) {
if (SubmitInterface.changed) {
var result = confirm(gettext('The submission has been changed. It has to be saved before you can submit. Click OK to proceed with saving, click cancel to continue editing.'));
if (result) {
django.jQuery('form:first [name="_continue"]').click();
}
} else {
window.location = href;
}
}
};
@@ -0,0 +1,34 @@
var JsonSubscribers = {
init: function(inputname, add) {
inp = document.getElementById(inputname);
addEvent(inp, "change", function(e) { JsonSubscribers.setSubscribers(inp.value); });
if (add==true && inp.value != "") {
JsonSubscribers.setSubscribers(inp.value);
}
},
setSubscribers: function(id) {
SelectBox.move_all('id_subscriptions_to', 'id_subscriptions_from');
if (id) {
xmlhttp.open( "GET", "/admin/newsletter/message/"+id+"/subscribers/json/", true );
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status == 200) {
objects = eval( "(" + xmlhttp.responseText + ")" );
var from_box = document.getElementById('id_subscriptions_from');
for (var i = 0; (option = from_box.options[i]); i++) {
for (j=0;(object = objects[j]);j++) {
if (object.pk.toString() == option.value) {
option.selected = true;
}
}
}
SelectBox.move('id_subscriptions_from', 'id_subscriptions_to');
}
}
xmlhttp.send(null)
}
}
};
@@ -0,0 +1,10 @@
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
{{ block.super }}
<li><a href="{% url opts|admin_urlname:'preview' original.pk %}">{% trans "Preview" %}</a></li>
{% comment <li><a href="../../../submission/add/?message_id={{ message.id }}">{% trans "Prepare submission" %}</a></li>{% endcomment %}
{% endblock %}
@@ -0,0 +1,36 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
{% block title %}{% trans "Preview message" %}{{ block.super }}{% endblock %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="../../../../">{% trans "Home" %}</a> &rsaquo;
<a href="../../../">Newsletter</a> &rsaquo;
<a href="../../">{% trans "Message" %}</a> &rsaquo;
<a href="../">{{ message|truncatewords:"18" }}</a> &rsaquo;
{% trans "Preview" %}
</div>
{% endblock %}
{% block content %}
<h1>{% trans "Preview message" %}</h1>
<div id="content-main">
<ul class="object-tools">
<li><a href="{% url "admin:newsletter_message_change" message.id %}">{% trans "Change" %}</a></li>
<li><a href="{% url "admin:newsletter_message_submit" message.id %}">{% trans "Create submission" %}</a></li>
</ul>
{% if message.newsletter.send_html %}
<h4>{% trans "HTML" %}</h4>
<iframe src ="{% url "admin:newsletter_message_preview_html" message.id %}" width="960px" height="720px"></iframe>
{% endif %}
<h4>{% trans "Text" %}</h4>
<iframe src ="{% url "admin:newsletter_message_preview_text" message.id %}" width="960px" height="720px"></iframe>
</div>
<br/>
<br/>
{% endblock %}
@@ -0,0 +1,24 @@
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% load static from staticfiles %}
{% block extrahead %}
{{ block.super }}
<script src="{% url "admin:newsletter_js18n" %}" type="text/javascript"></script>
<script src="{% static "newsletter/admin/js/subscriber_lookup.js" %}" type="text/javascript"></script>
<script src="{% static "newsletter/admin/js/submit_interface.js" %}" type="text/javascript"></script>
{% endblock %}
{% block object-tools-items %}
{{ block.super }}
<li><a href="{% url opts|admin_urlname:'submit' original.pk %}" id="submitlink">{% trans "Submit" %}</a></li>
{% endblock %}
{% block after_related_objects %}{{ block.super }}<script type="text/javascript">
django.jQuery(window).load(function() {
JsonSubscribers.init('id_message'{% if add %}, add=true{% endif %});
SubmitInterface.init('#submitlink');
});
</script>{% endblock %}
@@ -0,0 +1,8 @@
{% extends "admin/change_list.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
<li><a href="{% url opts|admin_urlname:'import' %}">{% trans "Import" %}</a></li>
{{ block.super }}
{% endblock %}
@@ -0,0 +1,46 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
{% block title %}{% trans "Import addresses" %}{{ block.super }}{% endblock %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="../../../../">
{% trans "Home" %}
</a>
&rsaquo;
<a href="../../../">
{% trans "Newsletter" %}
</a>
&rsaquo;
<a href="../../">
{% trans "Subscriptions" %}
</a>
&rsaquo;
<a href="../">
{% trans "Import addresses" %}
</a>
&rsaquo;
{% trans "Confirm import" %}
</div>
{% endblock %}
{% block content %}
<h1>{% trans "Confirm import" %}</h1>
<div id="content-main">
<ul>
{% for email, name in subscribers.items %}
<li>{% if name %}{{ name }} &lt;{{ email }}&gt;{% else %}{{ email }}{% endif %}</li>
{% endfor %}
</ul>
<form enctype="multipart/form-data" method="post">
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<input type="submit" name="submit" value="{% trans 'Confirm' %}"/>
</form>
</div>
<br/>
<br/>
{% endblock %}
@@ -0,0 +1,43 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
{% block title %}{% trans "Import addresses" %}{{ block.super }}{% endblock %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="../../../">
{% trans "Home" %}
</a>
&rsaquo;
<a href="../../">
{% trans "Newsletter" %}
</a>
&rsaquo;
<a href="../">
{% trans "Subscriptions" %}
</a>
&rsaquo;
{% trans "Import addresses" %}
</div>
{% endblock %}
{% block content %}
<h1>{% trans "Import addresses" %}</h1>
<div id="content-main">
<!--
<ul class="object-tools">
<li><a href="../">{% trans "Change" %}</a></li>
<li><a href="../submit/">{% trans "Create submission" %}</a></li>
</ul>
-->
<form enctype="multipart/form-data" method="post">
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<input type="submit" name="submit" value="{% trans 'Upload' %}"/>
</form>
</div>
<br/>
<br/>
{% endblock %}
@@ -0,0 +1,15 @@
{% load i18n %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}{% trans "Newsletter" %}{% endblock title %}</title>
{% block header %}
{% endblock header %}
</head>
<body>
{% block body %}
{% endblock body %}
</body>
</html>
@@ -0,0 +1,32 @@
{% load thumbnail i18n %}<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ newsletter.title }}: {{ message.title }}</title>
</head>
<body>
<h1>{{ newsletter.title }}</h1>
<h2>{{ message.title }}</h2>
{% for article in message.articles.all %}
<h3>{{ article.title }}</h3>
{% thumbnail article.image "200x200" as image %}
<img src="http://{{ site.domain }}{{ image.url }}" width="{{ image.width }}" height="{{ image.height }}">
{% endthumbnail %}
<div>{{ article.text|safe }}</div>
{% if article.url %}
<div><a href="{{ article.url }}">{% trans "Read more" %}</a></div>
{% endif %}
{% endfor %}
<ul>
{% if submission.publish %}
<li><a href="http://{{ site.domain }}{{ submission.get_absolute_url }}">{% trans "Read message online" %}</a></li>
{% endif %}
<li><a href="http://{{ site.domain }}{% url "newsletter_unsubscribe_request" newsletter.slug %}">{% trans "Unsubscribe" %}</a></li>
</ul>
</body>
</html>
@@ -0,0 +1,15 @@
{% load i18n %}++++++++++++++++++++
{{ newsletter.title }}: {{ message.title }}
++++++++++++++++++++
{% for article in message.articles.all %}
{{ article.title }}
{{ article.text|striptags|safe }}
{% endfor %}
++++++++++++++++++++
{% trans "Unsubscribe:" %} http://{{ site }}{% url "newsletter_unsubscribe_request" newsletter.slug %}

Some files were not shown because too many files have changed in this diff Show More