From 6677fb1fd575283b2d3c593fce2b482e7c8ff616 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 17 Feb 2017 11:33:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/forms.py | 5 +- django_messages/__init__.py | 3 + django_messages/admin.py | 112 +++++ django_messages/apps.py | 6 + django_messages/context_processors.py | 7 + django_messages/fields.py | 23 + django_messages/forms.py | 67 +++ .../locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 5751 bytes .../locale/ar/LC_MESSAGES/django.po | 317 ++++++++++++++ .../locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 6309 bytes .../locale/cs/LC_MESSAGES/django.po | 398 +++++++++++++++++ .../locale/da/LC_MESSAGES/django.mo | Bin 0 -> 4826 bytes .../locale/da/LC_MESSAGES/django.po | 367 ++++++++++++++++ .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 5250 bytes .../locale/de/LC_MESSAGES/django.po | 321 ++++++++++++++ .../locale/el/LC_MESSAGES/django.mo | Bin 0 -> 6195 bytes .../locale/el/LC_MESSAGES/django.po | 291 +++++++++++++ .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 4610 bytes .../locale/es/LC_MESSAGES/django.po | 314 ++++++++++++++ .../locale/es_AR/LC_MESSAGES/django.mo | Bin 0 -> 3099 bytes .../locale/es_AR/LC_MESSAGES/django.po | 312 ++++++++++++++ .../locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 5926 bytes .../locale/fa/LC_MESSAGES/django.po | 357 +++++++++++++++ .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 5739 bytes .../locale/fr/LC_MESSAGES/django.po | 408 ++++++++++++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 5138 bytes .../locale/it/LC_MESSAGES/django.po | 317 ++++++++++++++ .../locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 5024 bytes .../locale/ko/LC_MESSAGES/django.po | 292 +++++++++++++ .../locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 4970 bytes .../locale/lt/LC_MESSAGES/django.po | 320 ++++++++++++++ .../locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 5071 bytes .../locale/nl/LC_MESSAGES/django.po | 314 ++++++++++++++ .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 3522 bytes .../locale/pl/LC_MESSAGES/django.po | 305 +++++++++++++ .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 4996 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 314 ++++++++++++++ .../locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 4885 bytes .../locale/ro/LC_MESSAGES/django.po | 317 ++++++++++++++ .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 5984 bytes .../locale/ru/LC_MESSAGES/django.po | 315 ++++++++++++++ .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 0 -> 4469 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 299 +++++++++++++ django_messages/management.py | 18 + .../management}/__init__.py | 0 .../management/commands}/__init__.py | 0 .../commands/delete_deleted_messages.py | 32 ++ django_messages/migrations/0001_initial.py | 37 ++ .../migrations/0002_auto_20160607_0852.py | 20 + django_messages/migrations/__init__.py | 0 django_messages/models.py | 105 +++++ django_messages/signals.py | 0 django_messages/templates/base.html | 11 + .../templates/django_messages/compose.html | 53 +++ .../templates/django_messages/ext.htm | 43 ++ .../templates/django_messages/inbox.html | 30 ++ .../django_messages/new_message.html | 13 + .../templates/django_messages/outbox.html | 27 ++ .../templates/django_messages/trash.html | 29 ++ .../templates/django_messages/view.html | 35 ++ .../notification/messages_deleted/notice.html | 1 + .../messages_received/notice.html | 2 + .../messages_recovered/notice.html | 1 + .../notification/messages_replied/notice.html | 2 + .../messages_reply_received/notice.html | 2 + .../notification/messages_sent/notice.html | 2 + django_messages/templatetags/__init__.py | 0 django_messages/templatetags/inbox.py | 45 ++ django_messages/tests.py | 178 ++++++++ django_messages/urls.py | 16 + django_messages/utils.py | 99 +++++ django_messages/views.py | 231 ++++++++++ djing/settings_example.py | 1 - djing/urls.py | 2 +- privatemessage/admin.py | 7 - privatemessage/context_processors.py | 7 - privatemessage/migrations/0001_initial.py | 39 -- privatemessage/models.py | 33 -- privatemessage/urls.py | 10 - privatemessage/views.py | 60 --- templates/accounts/acc_list.html | 2 +- templates/private_messages/index.html | 34 -- templates/private_messages/item.html | 7 - templates/private_messages/send_form.html | 14 - 84 files changed, 7133 insertions(+), 216 deletions(-) create mode 100644 django_messages/__init__.py create mode 100644 django_messages/admin.py create mode 100644 django_messages/apps.py create mode 100644 django_messages/context_processors.py create mode 100644 django_messages/fields.py create mode 100644 django_messages/forms.py create mode 100644 django_messages/locale/ar/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/ar/LC_MESSAGES/django.po create mode 100644 django_messages/locale/cs/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/cs/LC_MESSAGES/django.po create mode 100644 django_messages/locale/da/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/da/LC_MESSAGES/django.po create mode 100644 django_messages/locale/de/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/de/LC_MESSAGES/django.po create mode 100644 django_messages/locale/el/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/el/LC_MESSAGES/django.po create mode 100644 django_messages/locale/es/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/es/LC_MESSAGES/django.po create mode 100644 django_messages/locale/es_AR/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/es_AR/LC_MESSAGES/django.po create mode 100644 django_messages/locale/fa/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/fa/LC_MESSAGES/django.po create mode 100644 django_messages/locale/fr/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/fr/LC_MESSAGES/django.po create mode 100644 django_messages/locale/it/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/it/LC_MESSAGES/django.po create mode 100644 django_messages/locale/ko/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/ko/LC_MESSAGES/django.po create mode 100644 django_messages/locale/lt/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/lt/LC_MESSAGES/django.po create mode 100755 django_messages/locale/nl/LC_MESSAGES/django.mo create mode 100755 django_messages/locale/nl/LC_MESSAGES/django.po create mode 100644 django_messages/locale/pl/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/pl/LC_MESSAGES/django.po create mode 100644 django_messages/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 django_messages/locale/ro/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/ro/LC_MESSAGES/django.po create mode 100644 django_messages/locale/ru/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/ru/LC_MESSAGES/django.po create mode 100644 django_messages/locale/zh_CN/LC_MESSAGES/django.mo create mode 100644 django_messages/locale/zh_CN/LC_MESSAGES/django.po create mode 100644 django_messages/management.py rename {privatemessage => django_messages/management}/__init__.py (100%) rename {privatemessage/migrations => django_messages/management/commands}/__init__.py (100%) create mode 100644 django_messages/management/commands/delete_deleted_messages.py create mode 100644 django_messages/migrations/0001_initial.py create mode 100644 django_messages/migrations/0002_auto_20160607_0852.py create mode 100644 django_messages/migrations/__init__.py create mode 100644 django_messages/models.py create mode 100644 django_messages/signals.py create mode 100644 django_messages/templates/base.html create mode 100644 django_messages/templates/django_messages/compose.html create mode 100644 django_messages/templates/django_messages/ext.htm create mode 100644 django_messages/templates/django_messages/inbox.html create mode 100644 django_messages/templates/django_messages/new_message.html create mode 100644 django_messages/templates/django_messages/outbox.html create mode 100644 django_messages/templates/django_messages/trash.html create mode 100644 django_messages/templates/django_messages/view.html create mode 100644 django_messages/templates/notification/messages_deleted/notice.html create mode 100644 django_messages/templates/notification/messages_received/notice.html create mode 100644 django_messages/templates/notification/messages_recovered/notice.html create mode 100644 django_messages/templates/notification/messages_replied/notice.html create mode 100644 django_messages/templates/notification/messages_reply_received/notice.html create mode 100644 django_messages/templates/notification/messages_sent/notice.html create mode 100644 django_messages/templatetags/__init__.py create mode 100644 django_messages/templatetags/inbox.py create mode 100644 django_messages/tests.py create mode 100644 django_messages/urls.py create mode 100644 django_messages/utils.py create mode 100644 django_messages/views.py delete mode 100644 privatemessage/admin.py delete mode 100644 privatemessage/context_processors.py delete mode 100644 privatemessage/migrations/0001_initial.py delete mode 100644 privatemessage/models.py delete mode 100644 privatemessage/urls.py delete mode 100644 privatemessage/views.py delete mode 100644 templates/private_messages/index.html delete mode 100644 templates/private_messages/item.html delete mode 100644 templates/private_messages/send_form.html diff --git a/abonapp/forms.py b/abonapp/forms.py index 850601a..c44a05d 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -31,7 +31,7 @@ class AbonForm(forms.ModelForm): })) password = forms.CharField(max_length=64, initial=generate_random_password, - widget=forms.TextInput(attrs={'class': 'form-control', 'required':''})) + widget=forms.TextInput(attrs={'class': 'form-control'})) class Meta: model = models.Abon @@ -56,6 +56,7 @@ class AbonForm(forms.ModelForm): } def save(self, commit=True): + print('SavePassw') raw_password = self.cleaned_data['password'] acc = super().save(commit=False) acc.password = make_password(raw_password) @@ -66,7 +67,7 @@ class AbonForm(forms.ModelForm): abon_raw_passw.passw_text = raw_password abon_raw_passw.save(update_fields=['passw_text']) except models.AbonRawPassword.DoesNotExist: - models.AbonRawPassword.create( + models.AbonRawPassword.objects.create( account=acc, passw_text=raw_password ) diff --git a/django_messages/__init__.py b/django_messages/__init__.py new file mode 100644 index 0000000..a8a2926 --- /dev/null +++ b/django_messages/__init__.py @@ -0,0 +1,3 @@ +VERSION = (0, 5, 3,) +__version__ = '.'.join(map(str, VERSION)) +default_app_config = 'django_messages.apps.DjangoMessagesConfig' diff --git a/django_messages/admin.py b/django_messages/admin.py new file mode 100644 index 0000000..51c493c --- /dev/null +++ b/django_messages/admin.py @@ -0,0 +1,112 @@ +from django import forms +from django.conf import settings +from django.utils.translation import gettext_lazy as _ +from django.contrib import admin +from django.contrib.auth.models import Group + +from django_messages.utils import get_user_model +User = get_user_model() + +if "notification" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): + from notification import models as notification +else: + notification = None + +from django_messages.models import Message + +class MessageAdminForm(forms.ModelForm): + """ + Custom AdminForm to enable messages to groups and all users. + """ + group = forms.ChoiceField(label=_('group'), required=False, + help_text=_('Creates the message optionally for all users or a group of users.')) + + def __init__(self, *args, **kwargs): + super(MessageAdminForm, self).__init__(*args, **kwargs) + self.fields['group'].choices = self._get_group_choices() + self.fields['recipient'].required = True + + def _get_group_choices(self): + return [('', u'---------'), ('all', _('All users'))] + \ + [(group.pk, group.name) for group in Group.objects.all()] + + class Meta: + model = Message + fields = ('sender', 'recipient', 'group', 'parent_msg', 'subject', + 'body', 'sent_at', 'read_at', 'replied_at', 'sender_deleted_at', + 'recipient_deleted_at') + +class MessageAdmin(admin.ModelAdmin): + form = MessageAdminForm + fieldsets = ( + (None, { + 'fields': ( + 'sender', + ('recipient', 'group'), + ), + }), + (_('Message'), { + 'fields': ( + 'parent_msg', + 'subject', 'body', + ), + 'classes': ('monospace' ), + }), + (_('Date/time'), { + 'fields': ( + 'sent_at', 'read_at', 'replied_at', + 'sender_deleted_at', 'recipient_deleted_at', + ), + 'classes': ('collapse', 'wide'), + }), + ) + list_display = ('subject', 'sender', 'recipient', 'sent_at', 'read_at') + list_filter = ('sent_at', 'sender', 'recipient') + search_fields = ('subject', 'body') + raw_id_fields = ('sender', 'recipient', 'parent_msg') + + def save_model(self, request, obj, form, change): + """ + Saves the message for the recipient and looks in the form instance + for other possible recipients. Prevents duplication by excludin the + original recipient from the list of optional recipients. + + When changing an existing message and choosing optional recipients, + the message is effectively resent to those users. + """ + obj.save() + + if notification: + # Getting the appropriate notice labels for the sender and recipients. + if obj.parent_msg is None: + sender_label = 'messages_sent' + recipients_label = 'messages_received' + else: + sender_label = 'messages_replied' + recipients_label = 'messages_reply_received' + + # Notification for the sender. + notification.send([obj.sender], sender_label, {'message': obj,}) + + if form.cleaned_data['group'] == 'all': + # send to all users + recipients = User.objects.exclude(pk=obj.recipient.pk) + else: + # send to a group of users + recipients = [] + group = form.cleaned_data['group'] + if group: + group = Group.objects.get(pk=group) + recipients.extend( + list(group.user_set.exclude(pk=obj.recipient.pk))) + # create messages for all found recipients + for user in recipients: + obj.pk = None + obj.recipient = user + obj.save() + + if notification: + # Notification for the recipient. + notification.send([user], recipients_label, {'message' : obj,}) + +admin.site.register(Message, MessageAdmin) diff --git a/django_messages/apps.py b/django_messages/apps.py new file mode 100644 index 0000000..c7a4f26 --- /dev/null +++ b/django_messages/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig +from django.utils.translation import ugettext_lazy as _ + +class DjangoMessagesConfig(AppConfig): + name = 'django_messages' + verbose_name = _('Messages') diff --git a/django_messages/context_processors.py b/django_messages/context_processors.py new file mode 100644 index 0000000..e649412 --- /dev/null +++ b/django_messages/context_processors.py @@ -0,0 +1,7 @@ +from django_messages.models import inbox_count_for + +def inbox(request): + if request.user.is_authenticated(): + return {'messages_inbox_count': inbox_count_for(request.user)} + else: + return {} diff --git a/django_messages/fields.py b/django_messages/fields.py new file mode 100644 index 0000000..18bf81d --- /dev/null +++ b/django_messages/fields.py @@ -0,0 +1,23 @@ +""" +Based on http://www.djangosnippets.org/snippets/595/ +by sopelkin +""" + +from django import forms +from django.forms import widgets +from django.utils.translation import ugettext_lazy as _ + +from django_messages.utils import get_user_model, get_username_field + +User = get_user_model() + + +class CommaSeparatedUserInput(widgets.Input): + input_type = 'text' + + def render(self, name, value, attrs=None): + if value is None: + value = '' + elif isinstance(value, (list, tuple)): + value = (', '.join([getattr(user, get_username_field()) for user in value])) + return super(CommaSeparatedUserInput, self).render(name, value, attrs) diff --git a/django_messages/forms.py b/django_messages/forms.py new file mode 100644 index 0000000..4f0c2fc --- /dev/null +++ b/django_messages/forms.py @@ -0,0 +1,67 @@ +from django import forms +from django.conf import settings +from django.utils.translation import ugettext_lazy as _ +from django.utils import timezone + + +if "notification" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): + from notification import models as notification +else: + notification = None + +from django_messages.models import Message +from accounts_app.models import UserProfile + + +class ComposeForm(forms.Form): + """ + A simple default form for private messages. + """ + recipient = forms.ModelMultipleChoiceField( + label=_(u"Recipient"), + widget=forms.SelectMultiple(attrs={'class': 'form-control'}), + queryset=UserProfile.objects.filter(is_admin=True), + ) + #recipient = CommaSeparatedUserField(label=_(u"Recipient")) + subject = forms.CharField( + label=_(u"Subject"), + max_length=140, + widget=forms.TextInput(attrs={'class': 'form-control'}) + ) + body = forms.CharField(label=_(u"Body"), + widget=forms.Textarea(attrs={'rows': '12', 'cols':'55', 'class': 'form-control'})) + + + def __init__(self, *args, **kwargs): + recipient_filter = kwargs.pop('recipient_filter', None) + super(ComposeForm, self).__init__(*args, **kwargs) + if recipient_filter is not None: + self.fields['recipient']._recipient_filter = recipient_filter + + + def save(self, sender, parent_msg=None): + recipients = self.cleaned_data['recipient'] + subject = self.cleaned_data['subject'] + body = self.cleaned_data['body'] + message_list = [] + for r in recipients: + msg = Message( + sender = sender, + recipient = r, + subject = subject, + body = body, + ) + if parent_msg is not None: + msg.parent_msg = parent_msg + parent_msg.replied_at = timezone.now() + parent_msg.save() + msg.save() + message_list.append(msg) + if notification: + if parent_msg is not None: + notification.send([sender], "messages_replied", {'message': msg,}) + notification.send([r], "messages_reply_received", {'message': msg,}) + else: + notification.send([sender], "messages_sent", {'message': msg,}) + notification.send([r], "messages_received", {'message': msg,}) + return message_list diff --git a/django_messages/locale/ar/LC_MESSAGES/django.mo b/django_messages/locale/ar/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5c16012db80b8236ea4f19f38ce7703a2a93517a GIT binary patch literal 5751 zcmbW3ZH!b`8Gw(qq8(eS*lHE4N0g5RW|&!^g<)r5p?pQQAe|yj+H5Z~cXy|qojbkv z4zR|grLf&)X(Uao#(!;)E^Jsc0fu?wR9W28|DPjd*g0kNGQ08BUqW43{PyHim{}-}^T7c6Mhx_3oxB@PP+o8m3 z1bz{ogtGsq;cq{t)Gy#p+NW?r<^@pn{}al*|3Qhv!@NEZSHZ(@Gn6>~4DwUI;q@i> zM<{lG1Z98z4c~(gAuRs=6-pd-vdIjoC!yF~h8n&I7sEH;H{h?}SK;5F__KiEXJ8tx zfKNlwGY%hwKZG*>JQRDbL9yfSke|9|VJN>S;tDAGH$d6v15oUF21;CyK(Y5I6uIw5 z{WDPF^A41F{vL`QAHgD&U>X0Q#I+1%pI?Gc!}s8~;WCo$1vm<;@Ixr^JAgB??f{fH zSE1zd_oDXeQ1qXHV(%5mPhI1+3|^0TA4w^8uY(eoB4pc*uDhVbQ0&tbnU|w& z#K#^}Q>p;hMfE(y1+^h+e;krZ<`H{I8}$ffrRh{{7&yF5K?d76f=N1cYYv}@O^ zquO_LTeNPuj1P=>LtS1*EmZ?|D!?RsaZJ}Rn zbw=urXY2lOWwq6{E#LOEKWyvB8tv3&rd4I>LC4ipLJe9PddPJeb?pp>eHrywUvXP; zSO2zw?R)n1_Z8J+=rga?er1H3UA3jdpxj#5yP-ql7ygbohwQQ*be$1nlJ8pHu(o{N zsJZq~qiVUjQuA&1kX7|o>9SK><}(RHof`5LPY>cw15ILh)u|1o#R%>Bj!T>~YNuVT zN;F-&RH;`8WS6%pm6Bl7V^?HtOV{1XA)JWgVXR3;y5bL~Bw&LM+74H0L%QT(Rn7PE zYFF)`b40bm8&OB@xBB(IXtiVqp1XEA(NnKh6746@9}jwsQi&ZLY{({+!`No#AH}gy z^G(Jj-QponJ#HV?E$b8YJVEms2cNS`giJl|w1Ptp?ll?N>QMXaPTAO1Dq+kKiE1s= z*$1q{8Cwq8j zvFNxeJG6&~M48)5ap`f;eHgk!)hr4dG)8^_& zDlIp5UUz4+8`8OKI=5D5*XFy|tjw;-W)V#9vkz57TZddOo$c1yY<_Jnl-q52ewxEl z^Qsn?ZC>vo8%HeNpV8kMwnn+Zdz|M@W%H;t>^PZ{Gt!&dZPkVvT+HdBZH?r0pKBeg zlypzoDQ&i>+oQIZaonNaR6l<(ZLe~fY-($Ge8^~dbVG9 zvba6HzAY!V4ccyc8^^rNot@X~4_5rtf%Fc$X1k%$yPfB)YUR7OmKF9^8?IGNZ+F}g zFRyEL)AS0DY}8@3P%9L&dXvs-Mhk@;)m&KZrrIslCAn<2x3ESpT^iPV3OSjvrahL+ zB?dQaU~nyi>o%rTa5}gcTy7rM&Ew5u+(>iJw`O=Ym};KX!Bs>~Bt(+OE~A>qg6ZI_ z+~3hxM&ctOI1`*l&s6ZH3eGpjnv=m*jn3oEvEVYZE(EjE*?dJsoio97bE0_y<07qM zql^XTl*k2Fg13x}Qj8}}}xt87d0bAB!9nX~xe5uj=Me!Zf96U6tj7*;vCkR*y$! zqWY4|K8~<#*Co`2aSGm*h1>qjHcyZWW2`+BoMoMpBt+tZ3|>v8So>|!L%N0D(ZKKv zgz{};BC6Y2lw!d!9VT&Dww2YIlX(+QRI%H^tZB5B5le}riF+c7vQ9KKC3#1CO5`N3 z+W8gEH3IaWXMr$RZxk`p;(*Po=1gnW{Hx4op$^WH;Ii&aCTZll$Fo;2!`@e;$@yGx2h7hOv&u8H4f3ld73r^IQw4~^2~ zq%a!EvuGs6l}Id@4i9C=M`36z0eXjWRb($qA_s3K+-P5crjwi(4<|Ke@EF(GxH$52 zqIOYpMrNqY1m}|9k0MTAbPLDqgl yCPBNG^p=x6MxaTxIbRU%L`f(Pw}L$h|G?T?g9`ri<7|i{8QnE=hCA#|iu@n@`+v*; literal 0 HcmV?d00001 diff --git a/django_messages/locale/ar/LC_MESSAGES/django.po b/django_messages/locale/ar/LC_MESSAGES/django.po new file mode 100644 index 0000000..027edb1 --- /dev/null +++ b/django_messages/locale/ar/LC_MESSAGES/django.po @@ -0,0 +1,317 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ossama M. Khayat , 2009. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-10-14 04:23+0300\n" +"PO-Revision-Date: 2009-11-02 00:41+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\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" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:8 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "المستلم" + +#: admin.py:15 +msgid "group" +msgstr "مجموعة" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "ينشئ الرسالة اختياريا لجميع المستخدمين او لمجموعة من المستخدمين." + +#: admin.py:23 +msgid "All users" +msgstr "جميع المستخدمين" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "الرسالة" + +#: admin.py:45 +msgid "Date/time" +msgstr "التاريخ/الوقت" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "أسماء المستخدمين التالي ذكرهم غير صحيحة: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:8 +#: templates/messages/outbox.html:8 templates/messages/trash.html:8 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "الموضوع" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "المحتوى" + +#: management.py:9 +msgid "Message Received" +msgstr "تم استلام الرسالة" + +#: management.py:9 +msgid "you have received a message" +msgstr "وصلتك رسالة" + +#: management.py:10 +msgid "Message Sent" +msgstr "تم إرسال الرسالة" + +#: management.py:10 +msgid "you have sent a message" +msgstr "قمت بإرسال رسالة" + +#: management.py:11 +msgid "Message Replied" +msgstr "تم الرد على الرسالة" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "قمت بالرد على الرسالة" + +#: management.py:12 +msgid "Reply Received" +msgstr "تم استلام الرد" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "استملت رداً على رسالة" + +#: management.py:13 +msgid "Message Deleted" +msgstr "تم حذف الرسالة" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "قمت بحذف رسالة" + +#: management.py:14 +msgid "Message Recovered" +msgstr "تم استرجاع الرسالة" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "قمت باسترجاع رسالة" + +#: models.py:51 templates/messages/inbox.html:8 +#: templates/messages/trash.html:8 templates/messages/view.html:8 +msgid "Sender" +msgstr "المرسل" + +#: models.py:53 +msgid "Parent message" +msgstr "الرسالة الأساسية" + +#: models.py:54 +msgid "sent at" +msgstr "أرسلت في" + +#: models.py:55 +msgid "read at" +msgstr "قُرأت في" + +#: models.py:56 +msgid "replied at" +msgstr "رُدّ عليها في" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "حذفها المُرسل في" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "حذفها المستلم في" + +#: models.py:89 +msgid "Messages" +msgstr "الرسائل" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "رسالة جديدة: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "تم إرسال الرسالة بنجاح." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"كتب %(sender)s:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "رد: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "تم حذف الرسالة بنجاح." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "تم استرجاع الرسالة بنجاح." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "الوارد" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "الرسائل المرسلة" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "رسالة جديدة" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "الحاوية" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "أكتب رسالة" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "أرسل" + +#: templates/messages/inbox.html:8 +msgid "Received" +msgstr "استُلمت" + +#: templates/messages/inbox.html:8 templates/messages/outbox.html:8 +#: templates/messages/trash.html:8 +msgid "Action" +msgstr "إجراء" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +#: templates/messages/trash.html:17 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "DATETIME_FORMAT" + +#: templates/messages/inbox.html:21 templates/messages/outbox.html:18 +msgid "delete" +msgstr "حذف" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "لا توجد رسائل." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"مرحباً %(recipient)s،\n" +"\n" +"وصلتك رسالة خاصة من %(sender)s\n" +"تحتوي ما يلي:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "أرسلت من %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "رد" + +#: templates/messages/outbox.html:8 +msgid "Sent" +msgstr "أرسل" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "الرسائل المحذوفة" + +#: templates/messages/trash.html:8 templates/messages/view.html:10 +msgid "Date" +msgstr "التاريخ" + +#: templates/messages/trash.html:18 +msgid "undelete" +msgstr "استرجاع" + +#: templates/messages/trash.html:27 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"تتم إزالة الرسائل المحذوفة من الحاوية على فترات زمنيّة متفاوتة، " +"فلا تعتمد على هذه الميزة للتخزين الطويل المدى." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "مشاهدة الرسالة" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "حذف" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "قمت بحذف الرسالة %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"وصلتك الرسالة %(message)s " +"من %(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "قمت باسترجاع الرسالة %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"قمت بالرد الرسائل %(message_parent_msg)s " +"من %(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "أرسل لك %(message_sender)s رداً على %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"قمت بإرسالة الرسالة %(message)s إلى %" +"(message_recipient)s." + diff --git a/django_messages/locale/cs/LC_MESSAGES/django.mo b/django_messages/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..deeec2f1b4e009933b2d10cf0c9b669bb09f7e41 GIT binary patch literal 6309 zcmcJSON<;x8OJLj3CZvX2I63^_e^RPYk+Frk{#1HJn$cd2MJJY+#W_s+g zGl$UHnqPNy*H>Tt>#MJ7-?{UaA1bZ`lrK`IZdS^H-@Sz&u20>j)HmU3xEr2_Ps6vM zhWkFM)ID$pQl*}Ocfe<%nD{N3`)DNLK*)VDC2UW_~&Q!Ps2~}d>-BnzXxSp zufj3-6Daon1jV1fzz5;K-~p&{`V4HqGW-=h1h2q@aFRxK_#717{{g=N$LUo3c>#+3 zm!S0fGQ_m{arXQg6n%aQMXxvE7vS4)9lQcX*ZUakXW@33#1CxUM9c`O|1+ZPgD04z zZ@~*t!}}0J?Cpf2)00qiJOjnA7-B*_1&_k#AVX8X&)&Za#oxa}8P64nY4tul4_Dop z#?24lT|ECA$~f=fLB3m^aZSdDp!B~NVnUsQGQRnY-+}k>{0bC1Z$TtbzlEaDAE30m z0{K&SU`*oXUMO+18H%0odn-5xEUUR=U@%K31!|MU~*;s%|X%m z*HHZX9h7mr4JAI`h2q~ov-kgnxTJ2yNxD+^z%_6TN}Qa?>RV8B{Wc_Q60Jm!35v|W zT;mkcRN9Nr`L&*#Z4~iGt})6(6wz5?OD@bN>tik4C>30rDH3xsKMzv&Qsk;oM60h* zWbX4zbQCRQoK*_asQna~uThHV@(4w)UCA%&0dAs*<|C91l>Cyoc{qF63Pq1eis)Co z*72}|BKpbP$n|K7AK0>*fvWFtMQQ}vv z-OzNcb!Oeu)(z@zIAV3fv6_cSFPK<6I(uI&mAc=K*uulxNeCMm@F1G+V~H`fxfIYES4o zk!y9-aC7~&X-P}RN17QEYHm^sS|0RlXyTSOGihB#?VX(3H+AUnzSH}U9zQ%erS@Vk z`5BG8CU>syN=1Tt-mkr;LZiD5-KJ@y?M!HziAz!F*oJl@9S5O18~aYEy&!VKw&UB4 zx^9B?5sh%v1bpvVJ;QKfEQ#a331-XUgtn0hiM)zB==#3QcIei;mPhD}*o~!`8w}q0d`+mb;LcZbMFiHRYbG# z^qgBmGIhk{;;=@JB`YScP{-Z18(N_|S3jqc(Ptcimlf;Ah>*9q=~ws+(H69p_$3w$36}9Se%iCg(|Ro86kFnelmB;%E_(w=maDNil5a5!?$MWZd>@q%r-)^I}W zMiXC~+F#z%`%e6sal`UH@>iX0s;ak4dr|3_ABT=#-fzMt89Hbsk9OjrZ92W3*bq!i zjF0G@dQ4aKhG56UCcSQ*4z^D`ES2L_ZrWDj>~VFn(CyArQwL7VI{v7m7h7RxsU3fa zr=h_ea-i{(4o$sf+RGQ0U%&@4b^dj6ArCy#W$o(A7sYMb_SS4)7Wls$>`cAjDgmDy zjS)A$&Gamu?B;8(I=Qms)f$1P9=Ry!yisd( z4}G|~k(ah*7;eLzmKhT}dd`_Qy6&5}Vd`d@-aD`R26&G*CF{HOc&>A~*16o&Mr3!JRdr0H ztu@SISKtNpL}J9rsVxdI%3eil<$^coM7;_#jU#U1i^VKJ7mJmq?pnXkQ0H~qTE4il zBr~1&Qt9?ve4F=howvE={Ph9{K4vDzXq(dik-i}5Eg?IPl5@?@C89QPlVxC&5MkPi=gY^4X!Qgk>nwV` z#hffG-(&d@uX%j-(p7S_9Qe)9hlpgxSTeqort`EDM-OcvT`qa@&6iDuUb-QW_jH4N-tTH5C0xhO5PtM+7|F4*FTr2chs0y<=fK(Q#f?Xx<)RK@We8WZ zLt}RXxo!`VOeCo%yMd!vPww*b{J(2dAu}13XC&^DspeEE4X+xXG`}{yuBy!vUb>TK f!eBqy-esH4764P*dpSVM%#r-_#GRm**wz04JDW+6 literal 0 HcmV?d00001 diff --git a/django_messages/locale/cs/LC_MESSAGES/django.po b/django_messages/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 0000000..9818544 --- /dev/null +++ b/django_messages/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,398 @@ +# Czech translation. +# Radim Sückr , 2016 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-01-01 12:29+0100\n" +"PO-Revision-Date: 2015-01-01 12:29+0100\n" +"Last-Translator: Radim Sückr \n" +"Language-Team: \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: admin.py:21 +msgid "group" +msgstr "Skupina" + +#: admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Volitelně vytváří zprávu pro všechny uživatele nebo skupinu uživatelů." + +#: admin.py:30 +msgid "All users" +msgstr "Všichni uživatelé" + +#: admin.py:48 models.py:91 +msgid "Message" +msgstr "Zpráva" + +#: admin.py:55 +msgid "Date/time" +msgstr "Datum/čas" + +#: apps.py:6 models.py:92 +msgid "Messages" +msgstr "Zprávy" + +#: fields.py:56 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Následující uživatelská jména nejsou správně: %(users)s" + +#: forms.py:18 models.py:55 templates/django_messages/outbox.html:10 +#: templates/django_messages/view.html:14 +msgid "Recipient" +msgstr "Příjemce" + +#: forms.py:19 models.py:52 templates/django_messages/inbox.html:10 +#: templates/django_messages/outbox.html:10 +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:8 +msgid "Subject" +msgstr "Předmět" + +#: forms.py:20 models.py:53 +msgid "Body" +msgstr "Obsah" + +#: management.py:9 +msgid "Message Received" +msgstr "Zpráva přijata" + +#: management.py:9 +msgid "you have received a message" +msgstr "přišla vám zpráva" + +#: management.py:10 +msgid "Message Sent" +msgstr "Zpráva odeslána" + +#: management.py:10 +msgid "you have sent a message" +msgstr "odeslali jste zprávu" + +#: management.py:11 +msgid "Message Replied" +msgstr "Zpráva zodpovězena" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "odpověděli jste na zprávu" + +#: management.py:12 +msgid "Reply Received" +msgstr "Odpověď přijata" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "přišla vám odpověď na zprávu" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Zpráva smazána" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "smazali jste zprávu" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Zpráva obnovena" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "obnovili jste smazanou zprávu" + +#: models.py:54 templates/django_messages/inbox.html:10 +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:10 +msgid "Sender" +msgstr "Odesílatel" + +#: models.py:56 +msgid "Parent message" +msgstr "Předchozí zpráva" + +#: models.py:57 +msgid "sent at" +msgstr "odesláno" + +#: models.py:58 +msgid "read at" +msgstr "přečteno" + +#: models.py:59 +msgid "replied at" +msgstr "zodpovězeno" + +#: models.py:60 +msgid "Sender deleted at" +msgstr "Odesílatel smazal zprávu" + +#: models.py:61 +msgid "Recipient deleted at" +msgstr "Příjemce smazal zprávu" + +#: templates/django_messages/base.html:8 templates/django_messages/inbox.html:6 +#: templates/django_messages/new_message.html:13 +msgid "Inbox" +msgstr "Příchozí zprávy" + +#: templates/django_messages/base.html:9 +#: templates/django_messages/outbox.html:6 +msgid "Sent Messages" +msgstr "Odchozí zprávy" + +#: templates/django_messages/base.html:10 +msgid "New Message" +msgstr "Nová zpráva" + +#: templates/django_messages/base.html:11 +msgid "Trash" +msgstr "Koš" + +#: templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "Napsat zprávu" + +#: templates/django_messages/compose.html:10 +msgid "Send" +msgstr "Odeslat" + +#: templates/django_messages/inbox.html:10 +msgid "Received" +msgstr "Přijato" + +#: templates/django_messages/inbox.html:10 +#: templates/django_messages/outbox.html:10 +#: templates/django_messages/trash.html:10 +msgid "Action" +msgstr "Akce" + +#: templates/django_messages/inbox.html:22 +#: templates/django_messages/outbox.html:19 +#: templates/django_messages/trash.html:19 +#: templates/django_messages/view.html:13 +msgid "DATETIME_FORMAT" +msgstr "j. E Y, H:i" + +#: templates/django_messages/inbox.html:23 +#: templates/django_messages/outbox.html:20 +msgid "delete" +msgstr "smazat" + +#: templates/django_messages/inbox.html:29 +#: templates/django_messages/outbox.html:26 +#: templates/django_messages/trash.html:26 +msgid "No messages." +msgstr "Žádné zprávy." + +#: templates/django_messages/new_message.html:4 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Dobrý den %(recipient)s,\n" +"\n" +"máte novou soukromou zprávu od %(sender)s\n" +"s následujícím obsahem:" + +#: templates/django_messages/new_message.html:12 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Odesláno z %(site_url)s" + +#: templates/django_messages/new_message.html:14 +#: templates/django_messages/view.html:20 +msgid "Reply" +msgstr "Odpovědět" + +#: templates/django_messages/outbox.html:10 +msgid "Sent" +msgstr "Odesláno" + +#: templates/django_messages/trash.html:6 +msgid "Deleted Messages" +msgstr "Smazané zprávy" + +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:12 +msgid "Date" +msgstr "Datum" + +#: templates/django_messages/trash.html:20 +msgid "undelete" +msgstr "obnovit" + +#: templates/django_messages/trash.html:29 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Smazané zprávy jsou z koše odstraňovány v nepravidelných intervalech, " +"nespoléhejte se na koš jako dlouhodobé úložiště." + +#: templates/django_messages/view.html:6 +msgid "View Message" +msgstr "Zobrazit zprávu" + +#: templates/django_messages/view.html:22 +msgid "Delete" +msgstr "Smazat" + +#: templates/notification/messages_deleted/full.txt:1 +#, python-format +msgid "You have deleted the message '%(message)s'." +msgstr "Smazali jste zprávu '%(message)s'." + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" +"Smazali jste zprávu %(message)s." + +#: templates/notification/messages_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s has sent you a message:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" +"%(message_sender)s vám napsal/a zprávu:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Přišla vám zpráva %(message)s " +"od %(message_sender)s." + +#: templates/notification/messages_received/short.txt:1 +#: templates/notification/messages_reply_received/short.txt:1 +#, python-format +msgid "%(notice)s by %(message_sender)s" +msgstr "%(notice)s od %(message_sender)s" + +#: templates/notification/messages_recovered/full.txt:1 +#, python-format +msgid "You have recovered the message '%(message)s'." +msgstr "Obnovili jste zprávu '%(message)s'." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" +"Obnovili jste zprávu %(message)s." + +#: templates/notification/messages_replied/full.txt:1 +#, python-format +msgid "" +"You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +msgstr "" +"Odpověděli jste na '%(message_parent_msg)s' od %(message_recipient)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Odpověděli jste na %(message_parent_msg)s " +"od %(message_recipient)s." + +#: templates/notification/messages_reply_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s replied to '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" +"%(message_sender)s odpověděl/a na '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s vám poslal/a odpověď na %(message_parent_msg)s." + +#: templates/notification/messages_sent/full.txt:1 +#, python-format +msgid "You have sent the message '%(message)s' to %(message_recipient)s." +msgstr "Odeslali jste zprávu '%(message)s' uživateli %(message_recipient)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" +"Odeslali jste zprávu %(message)s uživateli " +"%(message_recipient)s." + +#: utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s napsal:\n" +"%(body)s" + +#: utils.py:54 +#, python-format +msgid "Re%(prefix)s: %(subject)s" +msgstr "Re%(prefix)s: %(subject)s" + +#: utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nová zpráva: %(subject)s" + +#: views.py:79 views.py:116 +msgid "Message successfully sent." +msgstr "Zpráva úspěšně odeslána." + +#: views.py:98 views.py:194 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:159 +msgid "Message successfully deleted." +msgstr "Zpráva úspěšně smazána." + +#: views.py:186 +msgid "Message successfully recovered." +msgstr "Zpráva úspěšně obnovena." diff --git a/django_messages/locale/da/LC_MESSAGES/django.mo b/django_messages/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..591819e06425fd7ee6a423600682f6553917209f GIT binary patch literal 4826 zcmbW3U5p!76@V|K&|m_kDSzcJmn9`x5Tb#}d*ZSCFF+F7ZUV42;y_D*&@ zW8E1$T?r84wMZZ&UVtZ55>;xUFGUrC3bY`^0}lw05Dyhds1H2yBk{lk-rpg zzW19u_wU?u&OOJk9lz(Bisv%rBa~xrRjLjDeT0hV>f4mM0$1RN;8)?>;Vt+M_Po1QabKM(JR zt?c_2JVrZ&ABA6lC*ZfB$onIB6#gE*6TSvN2>%M-4Uf<%>mP?QZiY(aJOkegFF=v! z2`J;&p`2$6BC2ws$g`Jy{~~-B?XST1!>>cOQnz3g{s78)e}W?S>u?$V9ey4@#^x*V zJJ5x%!_UGeOX+^kLz({)ly!dy`Ked4_OBpIsoy|3{~zIp;XmOg;r%E<^mGw^0B%CD zdjK!IMX6`u6SRMZa5DcGhmrM8L6Nr#W#3Cs^wxm$@LJaX1{D2#7s|X_S^Fg@dU_dt z3H}nwxt36>toIz0@h?Ep^UGAS{?9Z1F5_PyKlKkPIoA;eiTo$vgK!?oI-3yHsVyjW z@E|HsUxxhDvs5zf+ZmsO;$JU9vFoc45!ElCoaeVt#{U7zxIaU&!`~o3^)D*f=O~>r z{scS+PePHS15vH|9F+TX9X<_TgbVN}%GrWVDBoXzvd+E7Q+bX-+3x`;ay*!|XQ1fs zG!(zCLeawtJOg*K_Sc}u_k7m=Da71~OlP6Ym8YB{sbxQTPNhg{(T(_#JRhfs4Ngmg zM?%JVipVEA5&eCJa)}~$=^=_dVn5MI{)nH=P(DS`6nP$?R4It5K0y)Ni9Y0cgz{+e z#(jZv6p3H*piWgw-iRSkd|mugbV6uT4^zbN-$xODmS;9a;zt*~PS0#bCUA|Njr6V)X&SNK4~N>()(rf89fx{6bl_O}xB5|U zHma~hG4+NGV^b?Vbb32<_h%zj--*32P<7we!^qf3UE#Z02>XLDGP;%StQM?sViW0j z*XT?d9S&rs4}u>s=1+a=_lT6C@mUpUpG6b zOsywQm@7zanCb4~biAZ$W=QsyON&wYhJF^G=I*yTv5e3?3sGoT`iQKmSaqXkLe9kt54nRyAw6>Ly1Cn zFnwz>KFOiqC@Uw=Z{CEsk=XF=bTJhjr&dqzg-QaJBF=HQW0)R?*JM*T#MhD_C2?TN z%ueCrMOR_D|J_$a?n8$a8a<>pmFo75b15Z4WrkPlHk2D#UUAEtgm|KMO|RD%o~$o7 z^k!qDy|T7i;*y0nF1Mnd=a#Pwdr`R))^uroty4~dKa4SGZ3ak*oheoZ&)tIO9!XIsFK&Br ziKO|)i-Xmz&Ib;@6<>26ZM2CFJq<>H4-)PU8(M0~e>IAOOu9AU` z-nPRY;hps0?uI@AZjU6RSNHW56YUY@+k4Kov9c{K_RkV;F;SDa=%=S=hl7F9PB&lk z&=ed>3JyuZERAm`Rm{rSeiB>xoP5dlw7Pqp*hpmTT5_N>@a*2uj@YqJR=j?2a}-EQ zM2x;2_A9!{eHtCyB-ctmDVhYGjBtsP0dL)5uqS^cbnN-s$K(iuZ}comsi@`9b)6oH zow%~3VpndU)&0C_tQDLmpY)mqC$)xF)8iA6f4(&``?T~5M zW$Y8YrM8*QuIidBs4ulWm+Iz-Iz!~S<_1xW5^WbKrQyr?s)ERO$r-#NP z?jR5488=&^pZn9BUn4tVe*eXE@>iW(mr7R{`pqw0tija8&+g=8hhtr(%5( zIvxj?JJw%vb;q%9YH6_wxmALZ@-bSh@>57+#a}YTD0kY5*e}&o-ci`*|MiH9@_>BX X*nIOWcuP#pH%<, 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Modtager" + +#: admin.py:15 +msgid "group" +msgstr "gruppe" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Skaber beskeden for alle brugere eller en gruppe af brugere." + +#: admin.py:23 +msgid "All users" +msgstr "Alle brugere" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Beskeder" + +#: admin.py:45 +msgid "Date/time" +msgstr "Dato/tid" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "De følgende brugernavne er forkerte: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Emne" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Indhold" + +#: management.py:9 +msgid "Message Received" +msgstr "Besked Modtaget" + +#: management.py:9 +msgid "you have received a message" +msgstr "du har modtaget en besked" + +#: management.py:10 +msgid "Message Sent" +msgstr "Besked Afsendt" + +#: management.py:10 +msgid "you have sent a message" +msgstr "du har sendt en besked" + +#: management.py:11 +msgid "Message Replied" +msgstr "Besked Besvaret" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "du har besvaret en besked" + +#: management.py:12 +msgid "Reply Received" +msgstr "Svar Modtaget" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "du har modtaget en besvarelse på en besked" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Besked Slettet" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "du har slettet en besked" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Besked Genskabt" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "du har genskabt en besked" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Afsender" + +#: models.py:53 +msgid "Parent message" +msgstr "Stambesked" + +#: models.py:54 +msgid "sent at" +msgstr "sendt" + +#: models.py:55 +msgid "read at" +msgstr "læst" + +#: models.py:56 +msgid "replied at" +msgstr "besvaret" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Afsender slettet" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Modtager slettet" + +#: models.py:89 +msgid "Messages" +msgstr "Beskeder" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Ny besked: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Besked sendt succesfuldt." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s skrev:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "SV: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Besked slettet succesfuldt." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Besked genskabt succesfuldt." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Indboks" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Sendte Beskeder" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Ny Besked" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Papirkurv" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Skriv Ny Besked" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Send" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Modtaget" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Handling" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "DATETIME_FORMAT" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "slet" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Goddag %(recipient)s,\n" +"\n" +"du har modtaget en privat besked fra %(sender)s med\n" +"følgende indhold:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Sendt fra %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Besvar" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Sendt" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Slettede Beskeder" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Dato" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "genskab" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Slettede beskeder fjernes fra papirkurven med jævne mellemrum. Lad være med " +"at regne med denne funktion til langtidslagring." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Læs Besked" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Slet" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "Du har slettet beskeden %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Du har modtaget beskeden %(message)s fra %" +"(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "Du har genskabt beskeden %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Du har besvaret %(message_parent_msg)s fra %" +"(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s har sendt dig en besvarelse på %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Du har sendt beskeden %(message)s til %" +"(message_recipient)s." + +#, fuzzy +#~ msgid "You have deleted the message '%(message)s'." +#~ msgstr "Du har slettet beskeden '%(message)s'." + +#, fuzzy +#~ msgid "" +#~ "%(message_sender)s has sent you a message:\n" +#~ "\n" +#~ "%(message)s\n" +#~ "\n" +#~ "%(message_body)s\n" +#~ "\n" +#~ "http://%(current_site)s%(message_url)s" +#~ msgstr "" +#~ "%(message_sender)s har sendt dig en besked:\n" +#~ "\n" +#~ "%(message)s\n" +#~ "\n" +#~ "%(message_body)s\n" +#~ "\n" +#~ "http://%(current_site)s%(message_url)s" + +#~ msgid "%(notice)s by %(message_sender)s" +#~ msgstr "%(notice)s af %(message_sender)s" + +#, fuzzy +#~ msgid "You have recovered the message '%(message)s'." +#~ msgstr "Du har genskabt beskeden '%(message)s'." + +#, fuzzy +#~ msgid "" +#~ "You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +#~ msgstr "Du har besvaret '%(message_parent_msg)s' fra %(message_recipient)s." + +#~ msgid "" +#~ "%(message_sender)s replied to '%(message_parent_msg)s':\n" +#~ "\n" +#~ "%(message)s\n" +#~ "\n" +#~ "%(message_body)s\n" +#~ "\n" +#~ "http://%(current_site)s%(message_url)s" +#~ msgstr "" +#~ "%(message_sender)s besvarede '%(message_parent_msg)s':\n" +#~ "\n" +#~ "%(message)s\n" +#~ "\n" +#~ "%(message_body)s\n" +#~ "\n" +#~ "http://%(current_site)s%(message_url)s" + +#, fuzzy +#~ msgid "You have sent the message '%(message)s' to %(message_recipient)s." +#~ msgstr "Du har sendt beskeden '%(message)s' til %(message_recipient)s." diff --git a/django_messages/locale/de/LC_MESSAGES/django.mo b/django_messages/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1e4e5c863a52b4f239dfc144125292f639a9bb9b GIT binary patch literal 5250 zcmbuCON<;x8Gs82CQJeWlbDAgDGZxY?*Gpy}?2e5b6xqGgH8XAZ zbPxU5wIdK52suPZAQDALNJPRXjwm9R9DtQ?NWcM3C_+(u0mKEu0g1==_iK9WT@>ur zRDa#|{GU}lZ|=V9WySR*<cMlc<)`@xQ6dnY6gB4ehR(@cfnu755nI=>H0@_ zAG`q@@SW`aD4nH!9!mcfl=0`deFQ!WW9UH(z6}|w=02blKh@$U^R}V%x8X-&oYlVo z@8$g!_!)Q&J_LUWMc%jI-SA)V9=MB_Pr%(!#vOzohR2|+GY|QxFLM)lFT(rbB`9)z z14{qrq3HDzL}c{?D001;)&CTJi1*jw9(Wxhg8BoTf^S2a?*SGOIrhSNxF24GL%0Bc z3vIZ!g00{;p{(~Nl<_y9%=>4^PyH=>|2Jd_wF{-i4)?*m@Bn-m&Ox!)0Dc_42*v+D zhL68Tsh`6Z@BctJsXvV}vhGDFdiApR7=DcRufZ?D??Q&Ex1h-PS15A*9f~~vfntxl zG2$!mA=rhlLmBrVPC#XK0Lr|N!QJo-6#2gbAAp-#{db_|{Z+Uh{sM~s{{&^e3PB_O z+5=_$1eEz2P~xBs>8b`$7bm%aZ5ihS?D zPr`c$3h~bbJPxZ+=I=p~BYY4v@m;Wa4sxDKb_4Y&{PA*iMPI25~`hqyhl30r_VKoNUs$|IC%$`OjJEtka3 ziR4MClkoBExei$((N(J6M-jQ?51zmg+|DI%*} zPozlhN4bkFCMc4t60f48T$ocmMyXQ7PGW-xDf#s|9x!d9j#FOk0L$J)|?8M;?> zKmO&qy3?bv|N_%`hn&lok7cs?gf54)P6UutEt&WyV+h?Y+jgK zUR`Xo)hzQRx5JS$;K{f~DiYZFy5TJq8okhW;BOdPcLRTrh!h1@*w&|%~U*tw?87}phR2BzZ-9Sk`c z9;#Ht*wh$D*0%I8a5hk)uty?I+0stbuZY3AKC^8)UQc&?r1GM$t`@v?|BA}Zn^9-# z=k^4j$~r;v_q@ZEgEj6ia8`p5@I=qT^vIiS_iZi!mr|E4i5< zLwQJI61n9PhterZ!v}et$Xtj67lGGO(N%lQYmyh9Mc607=Xf1I2vAVuPf~_~Z3#ei z&M8^tJkip(HcTN&Id@K2x*wSC$$g`YO(fWNs;HO@PaL*R)l@MLYo?)hTNCBlqQ=-> zGQL0>0%K`@d!i;mDO=LJ7=EF=S&7m&%ZlcC8kWQj#fP_Ni?OY8Z1yxsRI+<1Ha!wO zf~h(@CX2$DSW9*+*%ZdyY!xA1G!>rv-)+Sbz zhF!FDNQ9k!;F$IDfqXeXkd2-(UK~BgrncbqEjLn2mUQp*Bh4YuwL&ITb6aopL=dA# zt(#Wg-82pdcz5fKKwmPp@rudVkT{^@uxB>6uJv6GBt0L*!=cfA$9pcWsY^Azq|YDH zXX=ie(D5L>AAZI-k!o%I44GMX-nhvlCt$Jgj@5e81R{gurAM@J2V2*+e&qD1TgXmo zmuFHM>wD25QP4#}6zlZ0m*{Kcjj%FVxW+d@q!oH6RjfGmrxv!9}0cFWLm+9^=*3iXTP&+)7&k|mc)8mo5#uMLt@569PeE3aY>6}fijideFl#M(E_xcz`4 Xe|1Ud@i|9baz%D(FO;KWx)uHx6B)4q literal 0 HcmV?d00001 diff --git a/django_messages/locale/de/LC_MESSAGES/django.po b/django_messages/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..29ec615 --- /dev/null +++ b/django_messages/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,321 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Empfänger" + +#: admin.py:15 +msgid "group" +msgstr "Gruppe" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" +"Fügt die Nachricht wahlweise für jeden Benutzer der ausgewählten Gruppe " +"hinzu." + +#: admin.py:23 +msgid "All users" +msgstr "Alle Benutzer" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Nachricht" + +#: admin.py:45 +msgid "Date/time" +msgstr "Datum/Zeit" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Die folgenden Benutzernamen sind nicht korrekt: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Betreff" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Inhalt" + +#: management.py:9 +msgid "Message Received" +msgstr "Nachricht erhalten" + +#: management.py:9 +msgid "you have received a message" +msgstr "Du hast eine Nachricht erhalten" + +#: management.py:10 +msgid "Message Sent" +msgstr "Nachricht gesendet" + +#: management.py:10 +msgid "you have sent a message" +msgstr "Du hast eine Nachricht gesendet" + +#: management.py:11 +msgid "Message Replied" +msgstr "Nachricht beantwortet" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "Du hast eine Nachricht beantwortet" + +#: management.py:12 +msgid "Reply Received" +msgstr "Antwort erhalten" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "Du hast eine Antwort auf eine Nachricht erhalten" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Nachricht gelöscht" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "Du hast eine Nachricht gelöscht" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Nachricht wiederhergestellt" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "Du hast eine Nachricht wiederhergestellt" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Absender" + +#: models.py:53 +msgid "Parent message" +msgstr "Übergeordnete Nachricht" + +#: models.py:54 +msgid "sent at" +msgstr "gesendet am" + +#: models.py:55 +msgid "read at" +msgstr "gelesen am" + +#: models.py:56 +msgid "replied at" +msgstr "beantwortet am" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Vom Absender gelöscht" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Vom Empfänger gelöscht" + +#: models.py:89 +msgid "Messages" +msgstr "Nachrichten" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Neue Nachricht: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Nachricht erfolgreich gesendet." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s schrieb:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Nachricht erfolgreich gelöscht." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Nachricht erfolgreich wiederhergestellt." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Posteingang" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Gesendete Nachrichten" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Neue Nachricht" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Papierkorb" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Nachricht verfassen" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Senden" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Erhalten" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Aktion" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "j. N Y, H:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "löschen" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "Keine Nachrichten." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Hallo %(recipient)s,\n" +"\n" +"du hast eine private Nachricht von %(sender)s mit\n" +"dem folgenden Inhalt erhalten:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Gesendet von %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Antworten" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Gesendet" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Gelöschte Nachrichten" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Datum" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "wiederherstellen" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Gelöschte Nachrichten werden in unregelmäßigen Intervallen entfernt, verlass " +"dich nicht drauf, dass diese Nachrichten hier lange gespeichert werden." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Nachrichtendetails" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Löschen" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" +"Du hast die Nachricht %(message)s gelöscht." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Du hast die Nachricht %(message)s von %" +"(message_sender)s erhalten." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" +"Du hast die Nachricht %(message)s " +"wiederhergestellt." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Du hast auf die Nachricht %(message_parent_msg)" +"s von %(message_recipient)s geantwortet." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s hat dir eine Antwort auf %(message_parent_msg)s gesendet." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Du hast die Nachricht %(message)s an %" +"(message_recipient)s gesendet." diff --git a/django_messages/locale/el/LC_MESSAGES/django.mo b/django_messages/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..cecfd01ecbf71d944c9906bf53fbef2fdf984e88 GIT binary patch literal 6195 zcmb`KTWlOx8Guika9awcp=$*%3RY17R`IM{p;JL5PP zrHnlD?VQVh{@eNI_}%5p#ue8V?k{oQd52Q_;D49$;Ck#sN^OPR@C)!H{4jhSehf~+ zW$+@r3(mtX_?PJYE(S~gy->!lf-*nH<5O@wtiheof>$6@)mJ{E6n|eX;m6^-@bmB=@RM*Uog#lZlyNJ0h@NZUJ#ak~ zeZC20d@mGx`XQ>S0u+6oirRkyKf(JE_*wXK$WrQc*a4@Y$oo4Kz2Aeo;J@Ja;YJqk zhNocxz6YO#k7vU5eh+2-AE3y+0Qpl_qxU~SM5(_*vHx%Ii}2s@Yw&KIAb#2aKL__i ziF*}xFH!1wX!HIy%H0PyVvP9xNodAFnfE*tIj_N!@J%Rw+>MjOZ{LHmt_NlQi|_&X zDtsUQ5l+K%OcFm87$pAqG0egfP~vzYdVeS4GMuexUkC4p``~ss67eczs9L&QsZYau zU=FT^E8w@G==nn^>m7#tsZ%^2g1?L2-+`L<_aUmP48p{&74Tu0gQB+$#ZS+`mGEUK z{(lonT>lJZ{&FVExclID;Wqdq_;U2V;xkH(^6tZ*!v8?AV}wNro%$IRe~d%%`wWyg zyaoAF|Kzb6-a%s)e`KF5G7J3+`86LQ`*#n+_*sDUK4*{{3Vq9UN1kQYYlAY z7XLoPE&FX1x5Qxsw_K82q#VYruGpSu743e{t`=;!&C^4cr+M-9h*Q&+cJ1Nvi1r=b z8aiyb^!Hc1Vw;ykL_GD7>-cs)bN}iCPGO|YQ(Xgo$*HQYa#`0r+x65|+SN9vGVFM^ z?g>{`+g#i7ZBP3{wvM#X&alk1$}BzTxSAiK1T8PR=sLAw?F@!(Ikmm3Z%1Eu&yN0` zd-nEp^{MU1Gmmz^RN~g%HCRCaH-ymY}b3E)shWZ?%IV!%W%1rc;AQoxYMf*3=qM=ngpp3`Zl+CFNTGZuhTE- z7I%4Sw|z)AwNL!c<20{!;0N{qE>pcG37Za5d+l_0Y#l#BH!~#q)zp@t(nxxTPaV&} z&VrJM?M6sWFb`5@g6aXvdl)x639=54rZ>=9R5YYBX56C2nZ*Hnm$@aw?X?nqjux zmY}A!n2{@{5r*`)3scQ02s?aS=?@!hzF?yk{Sl--u33WY*;qCb%RUK2(!+oJl z!BW&Y_O=g0bNFc%g*9@`6e+0#sW4k{ipO1Xg4ZX6A!8%K0-wsExaTrd;N1($;v9bDnZw5IFX zU?P~OXO@ApjOJ%OAt$*VQlIPKY;eAD7y&1OnZ#E+7!T%I>u_-1tTnBIlPp*d=CpY< zj?*<6s?s>3f|nYjG)y(dM8zv+VqMx_Ym6GLCW5P?we(HWFbWa*t6r73On zP7c$JXAxZwrh_>+L;qZGDVWe`CZ;!xUI;j1riMRK+Ua1jIT$fl@Y5SIPsZS^#&eBR z!Thzyhv3%?oiQt4LCyJKN;F=iu|0T^QN|kdiJW;Xm=yEk24vwCq!243uJHn##uz4^ zk=8eEX>b^6v0^&7)HsZkd2Eun7AYNrJ}7R6ZH=X+u3+(hdk4D|pRAExOKR zq?eI0TN0X7yhsBACDwC1kJG_Gaco|(4d%pknAU11WT%s9d`2WD5?eMYR*2$>s5Xw# zG$qkqIC=&}Ch5M&#$BvGmNqSJz@eA1?BeyLwMJtUGmIauJ30*R1R~LQvBkxL8I#o$ z#)3J*c&!PoMHi~5aURiPn~mZW+3zNpHx|N-y2-j}qu7+VmyAeCVmqSAX^C-iFZ~wr zY5yu5#^#WCHeMjclDFv*=|f{OwwjD3myk*A<$$jRy>QCtHY*>% z#P&{jO$z>k-c&hG%({wo$yHCFAsao_gbU3PD?Vl, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: 2009-09-08 15:50+0200\n" +"Last-Translator: markos \n" +"Language-Team: Markos Gogoulos \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Αποδέκτης" + +#: admin.py:15 +msgid "group" +msgstr "ομάδα" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Δημιουργεί το μήνυμα προαιρετικά για όλους τους χρήστες ή για ομάδα χρηστών." + +#: admin.py:23 +msgid "All users" +msgstr "Όλοι οι χρήστες" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Μήνυμα" + +#: admin.py:45 +msgid "Date/time" +msgstr "Ημερομηνία/Ώρα" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Τα παρακάτω usernames δεν είναι σωστά: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Θέμα" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Κυρίως μέρος" + +#: management.py:9 +msgid "Message Received" +msgstr "Το μήνυμα ελήφθη " + +#: management.py:9 +msgid "you have received a message" +msgstr "έχετε λάβει ένα μήνυμα" + +#: management.py:10 +msgid "Message Sent" +msgstr "Το μήνυμα εστάλει" + +#: management.py:10 +msgid "you have sent a message" +msgstr "έχετε στείλει ένα μήνυμα" + +#: management.py:11 +msgid "Message Replied" +msgstr "Το μήνυμα έχει απαντηθεί" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "έχετε απαντήσει σε ένα μήνυμα" + +#: management.py:12 +msgid "Reply Received" +msgstr "Η απάντηση ελήφθη" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "έχετε λάβει μια απάντηση σε ένα μήνυμα" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Το μήνυμα έχει διαγραφεί" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "διαγράψατε ένα μήνυμα" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Το μήνυμα έχει ανακληθεί" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "έχετε ανακτήσει ένα μήνυμα" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Αποστολέας" + +#: models.py:53 +msgid "Parent message" +msgstr "Μήνυμα Γονέας" + +#: models.py:54 +msgid "sent at" +msgstr "εστάλει στις" + +#: models.py:55 +msgid "read at" +msgstr "αναγνώστηκε στις" + +#: models.py:56 +msgid "replied at" +msgstr "απαντήθηκε στις" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Ο αποστολέας το διέγραψε στις" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Ο αποδέκτης το διέγραψε στις" + +#: models.py:89 +msgid "Messages" +msgstr "Μηνύματα" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "καινούργιο μήνυμα: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Το μήνυμα έχει αποσταλεί με επιτυχία." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s έγραψε:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Το μήνυμα διεγράφει." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Το μήνυμα έχει ανακληθεί επιτυχημένα" + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Εισερχόμενα" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Σταλμένα μηνύματα" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Νέο μήνυμα" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Άχρηστα" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Συντάξτε μήνυμα" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Στείλτε" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Ελήφθη" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Ενέργεια" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "DATETIME_FORMAT" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "διαγράφω" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Γειά χαρά %(recipient)s,\n" +"\n" +"έχετε λάβει ένα προσωπικό μήνυμα από τον/την %(sender)s με\n" +"το ακόλουθο περιεχόμενο:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Εστάλει απο %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Απαντήστε" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Απεσταλμένα" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Διαγραμμένα μηνύματα" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Ημερομηνία" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "ξεδιαγράψτε" + +#: templates/messages/trash.html:23 +msgid "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." +msgstr "Τα διαγραμμένα μηνύματα απομακρύνονται απο τα Άχρηστα σε μη τακτά διαστήματα, μη βασίζεστε σε αυτά για μακροχρόνια αποθήκευση." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Προβολή Μηνύματος" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Διαγραφή" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "You have deleted the message %(message)s." +msgstr "Έχετε διαγράψει το μήνυμα %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "You have received the message %(message)s from %(message_sender)s." +msgstr "Έχετε λάβει το μήνυμα %(message)s από τον/την %(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "You have recovered the message %(message)s." +msgstr "Έχετε ανακτήσει το μήνυμα %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "You have replied to %(message_parent_msg)s from %(message_recipient)s." +msgstr "Έχετε απαντήσει στο %(message_parent_msg)sαπό τον/την %(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "Ο/η %(message_sender)s σας έστειλε μια απάντηση στο %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "You have sent the message %(message)s to %(message_recipient)s." +msgstr "Έχετε στείλει το μήνυμα %(message)s στον/στην %(message_recipient)s." diff --git a/django_messages/locale/es/LC_MESSAGES/django.mo b/django_messages/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7805790209c7c9163f310479c99e1efb9553d8c9 GIT binary patch literal 4610 zcmbuBU5Fi59l%d)tM#gl)~{N%9%Gtj?apR5wI;nymfY;#B#ZmS?k2XuHqPETdw0Uz zIhQ#zn?w`~DnhYOVxb693W5RiR8TB};J)dD4~mZgX&;Oaf}*|&{{HiI=dNi9>9FVi zX3ppT>-_(F^TB(6q-Hl=WLs=I_9d!0(s+ufPxTeI0%l{sMju{t1da z|AP0!{cQFD_z-*u9)u6TlTh|wgfj1I@cq!hk3kDXp6^1L{~{E>ojq|65Sb`wsjl`~iF!z6#I7V;JE<_!5+TUWH<(pF!E@jdJ|=C2vCU!$05wxDR80 z0Um@Jo`Z5;2$`Z1D0;q7e*YNC`s+~U{R$$A`YjYc{sCel^%fMl{tiX2eJm2*59w0- zp~(9P6nPIpIp;W(dF${fya?r-m!QPe%kUI@4Sp5A3FqL`DEmD8Hhc!>G1!o6CNu zAf{Jmp`5!0Mb3**{1iZmqi@1P@P|<1_YL@Q_{Z}57Q~IYZAISq(BvM7Z)CkZj~1wZ zCwY@Ss^^R4i^wBq%ky}F{8!?BiZ(+NSvXQ1qlvtdACA+Wq>10e_7W!tX<~nQrVHf$ z6Wu>mev3Zxi2XlLdyMua+7X)ATI?&2#HB}*xIRp~hbA_wo{8!ON~~*|#FF@1o-Y^3 z?JuuS(Bux_DvWb@V4U;&=8`jUV3G-^w|%GiNcA zM3RBsF@fGn>_Dg6MyHAIwzZ$?EKW>6i~K}~acYtsKXQ{gu<>Ili;&*N%nzO3GJcw| z)0RziWaGYpPPoZdOUyuz3FT~G50h{Q(RFFJLYk%x z!gRYO(rsCGyAsBI-Lps)r>?CQ;!S&1RVFB@3o8Uwzg{a(Yj&V{VwzKiQP}uiXa9P- z%X&Smyp=`h9^@ttrfxrqV#UsHGcJKp4>`4LuINho#(Nv1xoq>Y>0vUpnukYaAhl-3 zhimP4Da_22@~x5ahlGw+ydAx;j&n5{viTpC;ShyiEr!IsILp)1>Z2LQ=mPEYICUULx314p~X6xjE z(e=qCI51mxOt=$A{Mjj0@57lzwB6N4mA0h>^~D}PpzwNrjozK8c^pc9xC2cuH8Y1O zy;oK=uWnvLTqi!fJ6nw9t+CyUd!Z8JbE{KWD8g%g9L$KaJUvMU7;~^+xmVRgwa?yp ztj?ylomSiOHlu}9|9@~LrR1j4lWH}wau>aYz`H=$l7riNwKMmX&e^WM&|O8CvYW@hxv(e@KF-t@8QX(oDW zW+#-*%X!asJ8Rz3iZ|cU=T_QF3y)u1S?;zLeV2ONn%G4?iMFlJoL^kj%blgJKG9w3 zEG(Yt%+IfN*Vkv68uv3UjkjU^L0d0&md~CSkxwixo{GXLoAhT}OAAZgky0~L)2+E8 zyLubfh6tOQtLc$pbD2qomJAp8y_DLu zWMb!EHtLK)aMg{%K^XgqD!ZL7djjj!qIK2uX1{h+x=oT6(mK+Sj(ol94~gPL!}ZHBo8iP2n3k*-lSIlN^e?ZSR0JLl3+Gg;GCr+qHsWnWe> zgl>LilZqqL)IDqEkEmhw-@ z6!elk-*Juv&)ZL^oU4{IvtxDnIsP?XKFcY%BS;LvGd^0YJ&z9wAL1&s{5v)JsN#dA zx%MW>--?(nmlJ(rheUM;p|ch0m6eey;dR;Jie>mYFs|_LsN!~9M#SWiTYK5*%w-}W z|8ZjEy5L&ZEV)$#D{@(FA)=}b^oCRJqy|;hwi%Wqx8C^+jcr_98R8}~yEnL1k}S&$Rvt)Ker1>=QWQCE kEHRV@+?y}, 2008. +# Alfonso Bernardo Harita Rascón , 2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Destinatario" + +#: admin.py:15 +msgid "group" +msgstr "" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: admin.py:23 +msgid "All users" +msgstr "" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Mensaje" + +#: admin.py:45 +#, fuzzy +msgid "Date/time" +msgstr "Fecha" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Los siguientes usuarios son incorrectos: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Asunto" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Cuerpo" + +#: management.py:9 +msgid "Message Received" +msgstr "Mensaje Recibido" + +#: management.py:9 +msgid "you have received a message" +msgstr "ha recibido un mensaje" + +#: management.py:10 +msgid "Message Sent" +msgstr "Mensaje Enviado" + +#: management.py:10 +msgid "you have sent a message" +msgstr "ha enviado un mensaje" + +#: management.py:11 +msgid "Message Replied" +msgstr "Mensaje Respondido" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "ha respondido un mensaje" + +#: management.py:12 +msgid "Reply Received" +msgstr "Respuesta Recibida" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "ha recibido una respuesta a un mensaje" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Mensaje Eliminado" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "ha eliminado un mensaje" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Mensaje Recuperado" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "ha recuperado un mensaje" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Emisor" + +#: models.py:53 +msgid "Parent message" +msgstr "Mensaje padre" + +#: models.py:54 +msgid "sent at" +msgstr "enviado" + +#: models.py:55 +msgid "read at" +msgstr "leído" + +#: models.py:56 +msgid "replied at" +msgstr "respondido" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Emisor borrado" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Destinatario borrado" + +#: models.py:89 +msgid "Messages" +msgstr "Mensajes" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nuevo Mensaje: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Se envió con éxito el mensaje." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s escribió:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Se eliminó con éxito el mensaje." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Se recuperó con éxito el mensaje." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Bandeja de entrada" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Mensajes Enviados" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nuevo Mensaje" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Papelera" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Redactar Mensaje" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Enviar" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Recibido" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Acción" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "eliminar" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Hola %(recipient)s,\n" +"\n" +"ha recibido un mensaje de %(sender)s con\n" +"el siguiente contenido:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Enviado desde %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Responder" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Enviado" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Mensajes Eliminados" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Fecha" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "recuperar" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Los Mensajes Eliminados son borrados de la Papelera a intérvalos irregulares," +"no se confíe en esta característica para almacenamiento a largo plazo." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Ver Mensaje" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Eliminar" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "ha borrado el mensaje %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"ha recibido el mensaje %(message)s de %" +"(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "ha recuperado el mensaje %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"ha respondido a %(message_parent_msg)s de %" +"(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s le ha enviado una respuesta a %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"ha enviado el mensaje %(message)s a %" +"(message_recipient)s." diff --git a/django_messages/locale/es_AR/LC_MESSAGES/django.mo b/django_messages/locale/es_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0d9df8fc7b32ee6bb75466007f2f3d851911e71 GIT binary patch literal 3099 zcmaKtONsFoq;829b!^V;yTH5fy$^g4tb^3=gB<4+NS!Z( zc*JXXvHf+h0KS!dzXww92O#xd05^bNgPXvgK(2E&IzI#sfXu^Q@Hyn-IQTfe-@zdG zDLw_!MSKA=eqVyra~Z@Ve!%NK@Cx`Y_!qbid;`H?|MMW%`4PzepMz}wHsg;Vj zJ^=ofecuA{2)|g5%JL*C$6?{PEM6C4Amd=h%^3;K$-*@-UYxUt%00mO7+V&`gu0o# zt*9)_&(o-kLw{kMxrQy7@fnc0;y&S?=6+zoQaXj}y9Jf`U}5~Y=SrxIIrAe?hfulq zc=WfSvM{DRe_~+J={V4K$jQ^zB)VJ}7@RS|!jKacKM74N4&Y0Sm{!|3EgRZ7)zqS@ z61;SzdkFG2m)VyLQdupnZkc%<$XRPzGMUpdvC7R!mB=)-x9s)7ast7Zwi)`nbQa53uEo(Q z>81@D!bHE6+6W@1x^l!c^C*snee%0;5mu{!GAv{up#14L7MNoC&gNM#shm^udPzfX z)x9R0KrH-ez>Sb01_Wx2gn+U4OH9+tz~%g+vb zrRPf}IC_(MKIGt;-?3U{(rb)+)rx#!yxbVwa(sNOR;VkNc!+=OB86j6mIsg2>vF8p zsL4IGMrE|Vzf!GE)~2TR!8LBCI49n;R;{wESH=z^8r$4gXpA;$ON$yV zmI@;VCo;wy3vGx^^qFK^J5pi1Tl#a#I-Tr2GJVk7x#UMJv)X#K*f&8KH_LM8Oqdk< zuNm!p8_tA_mzG^MJ`AxKNwsYo?ASp02`+?&j-5KG#X*hvL@f$iVXQ2UTgU8VW(kZF zb>njPe!FzIK4y%y3QpK$GE#CvwXylELRN9(EMDN1gT~Ni_mFm5VE%GKvw zT13yn!#ooPrr(gZp?I0ewM`uKd)4CkkS5tc-|GU^Q}i&E3^qTNNQiHj(Dg;4fq8BTpB)c9w{HioeoM z3bN2(GjOq1)LNl4IeIoToBE5JK zA+}vSJV@~G1er_SncY^G1XSapqCp7X03G7VQ*b4ANl{11US B4t@Xt literal 0 HcmV?d00001 diff --git a/django_messages/locale/es_AR/LC_MESSAGES/django.po b/django_messages/locale/es_AR/LC_MESSAGES/django.po new file mode 100644 index 0000000..6de0f0f --- /dev/null +++ b/django_messages/locale/es_AR/LC_MESSAGES/django.po @@ -0,0 +1,312 @@ +# django-messages in Spanish Argentina. +# django-messages en Español Argentina. +# Copyright (C) 2008 +# This file is distributed under the same license as the django-messages package. +# Cecilia Lorena Puccinelli , 2008. +# Juan José Conti , 2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Destinatario" + +#: admin.py:15 +msgid "group" +msgstr "" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: admin.py:23 +msgid "All users" +msgstr "" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Mensaje" + +#: admin.py:45 +#, fuzzy +msgid "Date/time" +msgstr "Fecha" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Asunto" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Cuerpo" + +#: management.py:9 +msgid "Message Received" +msgstr "Mensaje Recibido" + +#: management.py:9 +msgid "you have received a message" +msgstr "ha recibido un mensaje" + +#: management.py:10 +msgid "Message Sent" +msgstr "Mensaje Enviado" + +#: management.py:10 +msgid "you have sent a message" +msgstr "ha enviado un mensaje" + +#: management.py:11 +msgid "Message Replied" +msgstr "Mensaje Respondido" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "ha respondido un mensaje" + +#: management.py:12 +msgid "Reply Received" +msgstr "Respuesta Recibida" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "ha recibido una respuesta a un mensaje" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Mensaje Eliminado" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "ha eliminado un mensaje" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Mensaje Recuperado" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "ha recuperado un mensaje" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Emisor" + +#: models.py:53 +msgid "Parent message" +msgstr "Mensaje padre" + +#: models.py:54 +msgid "sent at" +msgstr "enviado" + +#: models.py:55 +msgid "read at" +msgstr "leído" + +#: models.py:56 +msgid "replied at" +msgstr "respondido" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Emisor borrado" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Destinatario borrado" + +#: models.py:89 +msgid "Messages" +msgstr "Mensajes" + +#: utils.py:27 +#, fuzzy, python-format +msgid "New Message: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Se envió con éxito el mensaje." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s escribió:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Se eliminó con éxito el mensaje." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Se recuperó con éxito el mensaje." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Bandeja de entrada" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Mensajes Enviados" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nuevo Mensaje" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Papelera" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Redactar Mensaje" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Enviar" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Recibido" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Acción" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "eliminar" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Enviado desde %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Responder" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Enviado" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Mensajes Eliminados" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Fecha" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "recuperar" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Los Mensajes Eliminados son borrados de la Papelera a intérvalos irregulares," +"no se confíe en esta característica para almacenamiento a largo plazo." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Ver Mensaje" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Eliminar" + +#: templates/notification/messages_deleted/notice.html:1 +#, fuzzy, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "ha eliminado el mensaje %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, fuzzy, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "ha recibido un mensaje de %(sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, fuzzy, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "ha recuperado el mensaje %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, fuzzy, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "ha respondido a %(message)s de %(recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, fuzzy, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(sender)s le ha enviado una respuesta a %(message)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" + +#~ msgid "There is no user with this username." +#~ msgstr "No hay ningún usuario con ese nombre." + +#~ msgid "you have sent a message to %(recipient)s." +#~ msgstr "ha enviado un mensaje a %(recipient)s." + +#~ msgid "New Message:" +#~ msgstr "Mensaje Nuevo" diff --git a/django_messages/locale/fa/LC_MESSAGES/django.mo b/django_messages/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a61d8844b21853642f3f2e87efba0aa9629ad02c GIT binary patch literal 5926 zcmb`KYit#18GyfCQSrFy-n{Ih?k8He70#h82zY4OEl{A5mTu`{*hFyXnV!z(oHNIn zIR(}~LZD?0#>9x57^8`r6qiD_y;%u-;DdWFx*ZKNNpF0@uMU@RM*9ir-Ga z55kL3;(rBx>mH?k36Jt@VuY-F6^h)~p!n-g@$)@6L)NW@qp$;t9@Fq4cpA#Oi%{b8 zZTLET1x~^5;&j<>EkPE2*F({F1C)LD!jHlU_%V1U9{&OC;`wK=2mS>X;W~nVYHA2d zJU+*dthb=ZKOgsBil2W1-%tM%6n*~zB_3-YjO0B4MX$|J^y!0Q-w}ujsscX_UC2`P z0_=d7@CE3=hfq@dI0HqWuR_V^ zZ$gRV0+c-a6%@UG4<*iTz|HVc26w{|D1Q1n?14XrGX76U*uz|)1gKAOOB^)!a0 zms@m@EA&Ow4DI@K+%7{*RG*2T-v-5gxkNAV?N;s$+;Z*Ymi&#&joL1qnM-n9@`H3# zo47lQnmot9ZMr6WWok>jrD(Aa@}b$i;Z=t;+}hbnlE;ZAA8)2)VMR$Dd0(N@DVooS=y zZqyaK@wmq#6tf%5w_H7m`Ym=6MQe7WS`;O;>)8%|EvfxxttQ@c%n7S$;kYh$W1%3< zrN^{HwxOGjHH{Ie{h>Bl&syG8K^!z`v)c))QPmSRS~WbktcDuL?UO2TXG|TNpY-do zSX#CN%N?_l>1o!i%=01kPY2!B!~_wWY)Mcmk#9?@k78J~^KHf@z0x69jhH8NqJ5@a z#%XTr__O8&E>k0R;v8~rG|a%HLyegoolVD_v`%)p`Bh`)^5@9qEQzDhZY4$$dpgPb z=vSwX!yOeRKc*8SyCig${3N!xGRcb)3rj4|Jl1k*m~tpGN{#2@DJP_1Z~(%zv>Fq( zgC9N7KRi4v9GBEohpmjij*v%F#K4cC zvM!7s9506N1Qr#gw3l^ncTaDzduy?Go9^i?Z`rb;d&}l-CKkucX-hVb=N%aw7%L7R zEbbZ5`wy0fhc-NOaAdHs*K%C1$l+jMKL`<@m%`wkp< zvSyWRr`n!V){{nIcxZUA?UtTWcVTx_%!}ivnwaaEC%sM0nqf6|=!q%AaZRuP>G8eA z?d^GD%%tfQ2dNVkUI%5p{kY{7Mr$p{s1^6xPMu2FXoin&f6opbHT$~@ys(#_P96Nz zpYvbxuim<#{Y$|tB`2AZJv5B@*Zet|v>2T8=QNA1v1~3ltCud*TnJ`!-vdhv!D)X! z^FiR>2+jp(l|L`bgLCY}I@u)LIG9oN&jS(SzsSe}s?lVw=6QkU0)wg4_Mm7T%(DCJ zvMseN*Gmijwcva(E4t75*R}t>VCMBNUkGOXxf1Hgmdv}FX>Jn3{2Ttf@~`+m3{I<5 zmMoHe!frP47sc>&Jl=NY4DF+Y_z(qx+03--p*Ln&L1WRs>c5<-iJ)LcJQ0gy#;psX zOstt~eOObV^j{*PI67GK7a7X10x8KD%}H54S7Fi+s{zBqMe z>9VZw7jV=|;resrN2Z+dH52E*T|Y1^e{#Rx!s3YGM<;ST7Z`1lwS+uKdZ72nv=mnjGawt%IZ{b+Q?;0 z5*hyzsV22*UL}oKLjExyr$k0*c39_<{SpW8EFO-|Yg`Lc1+$eZDiYCo%Y6(=miRy7 zzQJ@k?V0)|TWkMi{|X+tLI9G(FB!5Z`e#25S5YaOb5fz$AUt7$%j<* z$*6H>T9u;ekCsv-qIW~OV^X*O=dGnqw_ikjd_@1BW^*R49jgnzgKxr|DYmvLh|M28A#G=v8-{72(m!`6=s*{{jN(4FLcE literal 0 HcmV?d00001 diff --git a/django_messages/locale/fa/LC_MESSAGES/django.po b/django_messages/locale/fa/LC_MESSAGES/django.po new file mode 100644 index 0000000..b7932d4 --- /dev/null +++ b/django_messages/locale/fa/LC_MESSAGES/django.po @@ -0,0 +1,357 @@ +# django-messages fari translations +# Copyright (C) 2012 Hassan Zamani +# This file is distributed under the same license as the djagno-messages package. +# Hassan Zamani , 2012. +# +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-06-27 12:44+0430\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"First-Translator: Mohammad Hamidi Esfahani" +"Last-Translator: Hassan Zamani \n" +"Language-Team: LANGUAGE \n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: admin.py:19 forms.py:20 models.py:52 +#: templates/django_messages/outbox.html:8 +#: templates/django_messages/view.html:12 +msgid "Recipient" +msgstr "گیرنده" + +#: admin.py:21 +msgid "group" +msgstr "گروه" + +#: admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "ارسال پیام به همه کاربران یا گروهی از آن‌ها." + +#: admin.py:29 +msgid "All users" +msgstr "تمامی کاربران" + +#: admin.py:44 models.py:88 +msgid "Message" +msgstr "پیام" + +#: admin.py:51 +msgid "Date/time" +msgstr "تاریخ/ساعت" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "این کاربرها صحیح نمی‌باشند: %(users)s" + +#: forms.py:21 models.py:49 templates/django_messages/inbox.html:8 +#: templates/django_messages/outbox.html:8 +#: templates/django_messages/trash.html:8 +#: templates/django_messages/view.html:6 +msgid "Subject" +msgstr "موضوع" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "متن" + + +#: management.py:9 +msgid "Message Received" +msgstr "پیام دریافت‌شد" + +#: management.py:9 +msgid "you have received a message" +msgstr "شما یک پیام دریافت کرده‌اید" + +#: management.py:10 +msgid "Message Sent" +msgstr "پیام ارسال‌شد" + +#: management.py:10 +msgid "you have sent a message" +msgstr "شما یک پیام ارسال کرده‌اید" + +#: management.py:11 +msgid "Message Replied" +msgstr "پیام پاسخ داده‌شد" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "شما به یک پیام پاسخ دادید" + +#: management.py:12 +msgid "Reply Received" +msgstr "پاسخ دریافت‌شد" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "شما پاسخی به یک پیام دریافت کرده‌اید" + +#: management.py:13 +msgid "Message Deleted" +msgstr "پیام حذف گردید" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "شما یک پیام حذف کردید" + +#: management.py:14 +msgid "Message Recovered" +msgstr "پیام بازیابی‌شد" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "شما یک پیام را بازیابی کردید" + +#: models.py:51 templates/django_messages/inbox.html:8 +#: templates/django_messages/trash.html:8 +#: templates/django_messages/view.html:8 +msgid "Sender" +msgstr "فرستنده" + +#: models.py:53 +msgid "Parent message" +msgstr "پیام مرجع" + +#: models.py:54 +msgid "sent at" +msgstr "ارسال شده در" + +#: models.py:55 +msgid "read at" +msgstr "خوانده شده در" + +#: models.py:56 +msgid "replied at" +msgstr "پاسخ داده شده در" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "فرستنده حذف‌شده در" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "گیرنده خذف‌شده در" + +#: models.py:89 +msgid "Messages" +msgstr "پیام ها" + +#: utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s گفت:\n" +"%(body)s" + +#: utils.py:54 +#, python-format +msgid "Re%(prefix)s: %(subject)s" +msgstr "پاسخ%(prefix)s: %(subject)s" + +#: utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "پیام جدید: %(subject)s" + +#: views.py:78 views.py:114 +msgid "Message successfully sent." +msgstr "پیام با موفقیت ارسال‌شد." + +#: views.py:121 +#, python-format +msgid "Re: %(subject)s" +msgstr "پاسخ: %(subject)s" + +#: views.py:157 +msgid "Message successfully deleted." +msgstr "پیام با موفقیت حذف‌شد." + +#: views.py:184 +msgid "Message successfully recovered." +msgstr "پیام با موفقیت بازیابی‌شد." + +#: templates/django_messages/base.html:8 +#: templates/django_messages/inbox.html:4 +#: templates/django_messages/new_message.html:10 +msgid "Inbox" +msgstr "صندوق دریافتی" + +#: templates/django_messages/base.html:9 +#: templates/django_messages/outbox.html:4 +msgid "Sent Messages" +msgstr "پیام‌های ارسال‌شده" + +#: templates/django_messages/base.html:10 +msgid "New Message" +msgstr "پیام جدید" + +#: templates/django_messages/base.html:11 +msgid "Trash" +msgstr "پیام‌های حذف‌شده" + +#: templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "ایجاد پیام جدید" + +#: templates/django_messages/compose.html:10 +msgid "Send" +msgstr "بفرست" + +#: templates/django_messages/inbox.html:8 +msgid "Received" +msgstr "دریافت‌شد" + +#: templates/django_messages/inbox.html:8 +#: templates/django_messages/outbox.html:8 +#: templates/django_messages/trash.html:8 +msgid "Action" +msgstr "عمل" + +#: templates/django_messages/inbox.html:20 +#: templates/django_messages/outbox.html:17 +#: templates/django_messages/trash.html:17 +#: templates/django_messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "" + +#: templates/django_messages/inbox.html:21 +#: templates/django_messages/outbox.html:18 +msgid "delete" +msgstr "حذف" + +#: templates/django_messages/inbox.html:27 +#: templates/django_messages/outbox.html:24 +#: templates/django_messages/trash.html:24 +msgid "No messages." +msgstr "پیامی وجود ندارد." + +#: templates/django_messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "سلام %(recipient)s,\n" +"\n" +"شما یک پیام خصوصی از %(sender)s دریافت کرده‌اید:" + +#: templates/django_messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "ارسال شده از %(site_url)s" + +#: templates/django_messages/new_message.html:11 +#: templates/django_messages/view.html:18 +msgid "Reply" +msgstr "پاسخ" + +#: templates/django_messages/outbox.html:8 +msgid "Sent" +msgstr "ارسال‌شد" + +#: templates/django_messages/trash.html:4 +msgid "Deleted Messages" +msgstr "پیام های حذف‌شده" + +#: templates/django_messages/trash.html:8 +#: templates/django_messages/view.html:10 +msgid "Date" +msgstr "تاریخ" + +#: templates/django_messages/trash.html:18 +msgid "undelete" +msgstr "بازیابی" + +#: templates/django_messages/trash.html:27 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"پیام‌های حذف‌شده در بازه‌های زمانی مشخصی از اینجا حذف می‌شوند، بنابراین برای نگهداری طولانی مدت از این‌جا استفاده نکنید." + +#: templates/django_messages/view.html:4 +msgid "View Message" +msgstr "نمایش پیام" + +#: templates/django_messages/view.html:20 +msgid "Delete" +msgstr "حذف" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "شما پیام %(message)s را حذف کردید." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "شما پیام جدید %(message)s را از %(message_sender)s دریافت کردید." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "شما پیام %(message)s را بازیابی کردید." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "شما به پیام %(message_parent_msg)s از %(message_recipient)s پاسخ‌دادید." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s پاسخی به %(message_parent_msg)s برای شما ارسال کرده." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "شما پیام %(message)s را به %(message_recipient)s ارسال‌کردید." + +#~ msgid "context" +#~ msgstr "متن پیام" + +#~ msgid "received at" +#~ msgstr "دریافت شده در" + +#~ msgid "deleted by sender at" +#~ msgstr "حذف شده توسط فرستنده در" + +#~ msgid "deleted by receiver at" +#~ msgstr "حذف شده توسط گیرنده در" + +#~ msgid "Message revert successfully" +#~ msgstr "پیام با موفقیت بازگردانی شد" + +#~ msgid "send message" +#~ msgstr "ارسال پیام" + +#~ msgid "date" +#~ msgstr "تاریخ" + +#~ msgid "revert" +#~ msgstr "بازگردانی" + +#~ msgid "deleted Messages will remove from trash step by step" +#~ msgstr "پیام های حذف شده در فواصل نامنظم از سطل زباله حذف می گردند" + +#~ msgid "not replied yet" +#~ msgstr "هنوز پاسخ داده نشده است" diff --git a/django_messages/locale/fr/LC_MESSAGES/django.mo b/django_messages/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2d03c912be08a7bed045cd6556585a1267c7b7ad GIT binary patch literal 5739 zcmbW4Uu+yl8Nes~M>$IW1SkPYJ53WD6W_&7lh(Z^X&uLI)5cA3t`SjHrR%*p-zMwb z)6T9Fg9Hd9+J~wSCvZY&G&ut&CGXy-hRtB71u1~KFWcclsXGf+`^6Pty`5k3V#eg3I7dmgLiTJ zAiNh!R}JriyWtExn7?1l+h2y#|5eCOUEy{&{0>auo6v!~KA;pssINnQ>Q!zc_cE0J zKY;hZxAXd6!8>^W6Z|y%8+-uXbbF@nPRLIk=Jp{t4|l*tDBoRxcfw0h#(5d?Q{Uny z`d)<}g+GF#*Ds*-e+P=)e}rPsyHND{OJ4sk_+j4v1Mh{mA`I2keQ*-)f+FvED0;jA z_rflG3SNdU!S`St9a8z|%c6MhW74`tlj zaH`DPo$xe#0E!+KivPZpzkdx%|JR`S@d~^G-+&SqPas6*;d@Z}{S?xqeh$UYzk?rv z??Ha*eQwge4Pm0+J@7%eFMt0W6#GLc{VqYV?-hvZ>h+vI$=mx-{P_on>FQl5e)$Jv ziqthIa&F(A>9+$)ylE)&KatnZLb|GFq4@hnD00`}A^2q|di@N_IPXA-i{Hbi;5GOH zoX6OG@cZytX@?RY_v0jqi!M9{e+yrN+nE&cn}sq@UxYI5SE1@j4hYU$&>QHHA8tUeIgDa zrl`aD`^`}FlS}+7bKRtfPvnxlN$iqXl1qFj*ZvHtjiSH!a+0zquYUrH|Kxg{BDU|Q z;I7oJolq{Bt7(d?L5Yhg%Ka3%j!+(=FeT|6gY=rD6Nz=;bI(dOGZ6bq#fFrZv|(zA$%g{^a7qOiLX@ zUV7UXdn-H{-$+G@b}_EKu0mrM_O67hrmZ_sxRR}kC)P<2ndQWHBJBmSiB=uo zPUv>S^Qq;?2moUeCjk<94D}6K7Ln zJQ>^3y~ta|h|(XaHdRl1aknN8>x4+V=mpE#4bduyZBrc&mcmP_aBohXn_txH#eB4C z1(rvqU8(8$UgiBX^2xGpo;No11RnQt4TTQMw?yh*!+TiImQbLOHhw68ojahgq* z&Knn(sprDNImFmZtKM`J68KQ=vLDOeL|N-F5j5Mz@vROq8SgN$L{0 z6&hRV6ldXszFut3C6SN9r!&=6YiQPFT?7tcp9Y^7xM37wpy;1289r=D0ID-y#Vcot zmaemEN=>S3XRKVQ<94i}ZrJybqq~vm9Nt-elWDv2NLev%5AAb~ROFyv7N*rfw=Age z3?>ilJHrEH;WD%(Y-SefjOe{(eTK$O!(BGJ!C>dAyWQAE?HRmS#G?gmL64yk#MfIJ z#7dY|r(mEn^FF*|k5=D&3Z4=NpP; zr(DNnQyFqMZY$5Kk=@G49nqR;b^XAFma-@35vxu`q3l8RPL`%#41FhP>-ng^-tMnQo~sXa*vk!1 zjVNt<(v^dj1BR1=eSX;lu4ycpBefGwu$*u<)mz3{X;ww#LjPw;SiHb_Jn+v{W3o1z z9Z>bwS`YJMb1B}}^BpgET)SN-vL-(Kd~3cwJ?JOabxc&BV^?f*#5MKwk{8!LUq2O^ zwink6y+vh=>DI_aHf}3=HB8uBwFy?kwf;JXI7fVcy%z>#ApNVFeYW_dy3mKx8b|ln z-N=it&um&E+-LJnV$b(1^O}(5EEI`Nmgq#q(LkotUq=UjaITvmPjz%JOd^)m2ziv?^4LO<2?Drrv_J&c;`bR3scE7!;Bw4%Rm)d^I-u2x$n2uJy5 z6(!q7`{W^EvP8aO@L-Yjh`C;bCFDXL@jsz)sf($x`GW3A@`xd>iOF6%VUT8kBywJi z%+$tqBDs)zfq;_@KTo!I+ z2P0E~o}wA*xNiRq(w2M*QeAS9oAfBccjWhy3?-|^Npvo-e9yf!oDIz+F5#3n4V1{j zpX_J2cV_%CV`DFHV#gz{sxP{*tbbK4rt7LrkL-yRmVQkniaUtJxl1^XrAv5LpQ}PP zc+M6p*JeV}x$Y&T*&C9p^CnKiItW+nhDB1$KcOiRUM5*qSJSLhd8n&1p*L8vXVUFM zLa#8ivU-P3+y)=YRZ_PNP+F2L z1|K+k>q54maGq~%K0q3lEUh%*GRha9s)|=sp}bVHiXBdds1gQ6SP!;@N@Es(H*6X{ VPDgjG%+bgWg^D8^t8rK9@L%*xaWMb@ literal 0 HcmV?d00001 diff --git a/django_messages/locale/fr/LC_MESSAGES/django.po b/django_messages/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 0000000..207d87f --- /dev/null +++ b/django_messages/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,408 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-18 17:46+0100\n" +"PO-Revision-Date: 2008-08-09 21:58+0100\n" +"Last-Translator: Roland Frédéric \n" +"Language-Team: Frédéric Roland \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: French\n" + +#: admin.py:21 +msgid "group" +msgstr "groupe" + +#: admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" +"Créé le message en option pour tous les utilisateurs ou un groupe " +"d'utilisateurs." + +#: admin.py:30 +msgid "All users" +msgstr "Tous les utilisateurs" + +#: admin.py:48 models.py:91 +msgid "Message" +msgstr "Message" + +#: admin.py:55 +msgid "Date/time" +msgstr "Date/heure" + +#: apps.py:6 models.py:92 +msgid "Messages" +msgstr "Messages" + +#: fields.py:56 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Les noms d'utilisateurs suivants sont incorrects : %(users)s" + +#: forms.py:18 models.py:55 templates/django_messages/outbox.html:10 +#: templates/django_messages/view.html:14 +msgid "Recipient" +msgstr "Destinataire" + +#: forms.py:19 models.py:52 templates/django_messages/inbox.html:10 +#: templates/django_messages/outbox.html:10 +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:8 +msgid "Subject" +msgstr "Sujet" + +#: forms.py:20 models.py:53 +msgid "Body" +msgstr "Message" + +#: management.py:9 +msgid "Message Received" +msgstr "Message Reçu" + +#: management.py:9 +msgid "you have received a message" +msgstr "vous avez reçu un message" + +#: management.py:10 +msgid "Message Sent" +msgstr "Message Envoyé" + +#: management.py:10 +msgid "you have sent a message" +msgstr "vous avez envoyé un message" + +#: management.py:11 +msgid "Message Replied" +msgstr "Message Répondu" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "vous avez répondu à un message" + +#: management.py:12 +msgid "Reply Received" +msgstr "Réponse Reçue" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "vous avez reçu une réponse à un message" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Message Effacé" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "vous avez effacé un message" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Message Récupéré" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "vous avez récupéré un message" + +#: models.py:54 templates/django_messages/inbox.html:10 +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:10 +msgid "Sender" +msgstr "Expéditeur" + +#: models.py:56 +msgid "Parent message" +msgstr "Message parent" + +#: models.py:57 +msgid "sent at" +msgstr "envoyé à" + +#: models.py:58 +msgid "read at" +msgstr "lu à" + +#: models.py:59 +msgid "replied at" +msgstr "répondu à" + +#: models.py:60 +msgid "Sender deleted at" +msgstr "Expéditeur effacé à" + +#: models.py:61 +msgid "Recipient deleted at" +msgstr "Destinataire effacé à" + +#: templates/django_messages/base.html:8 +#: templates/django_messages/inbox.html:6 +#: templates/django_messages/new_message.html:13 +msgid "Inbox" +msgstr "Boîte de réception" + +#: templates/django_messages/base.html:9 +#: templates/django_messages/outbox.html:6 +msgid "Sent Messages" +msgstr "Messages envoyés" + +#: templates/django_messages/base.html:10 +msgid "New Message" +msgstr "Nouveau Message" + +#: templates/django_messages/base.html:11 +msgid "Trash" +msgstr "Poubelle" + +#: templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "Composer Message" + +#: templates/django_messages/compose.html:10 +msgid "Send" +msgstr "Envoyer" + +#: templates/django_messages/inbox.html:10 +msgid "Received" +msgstr "Reçu" + +#: templates/django_messages/inbox.html:10 +#: templates/django_messages/outbox.html:10 +#: templates/django_messages/trash.html:10 +msgid "Action" +msgstr "Action" + +#: templates/django_messages/inbox.html:22 +#: templates/django_messages/outbox.html:19 +#: templates/django_messages/trash.html:19 +#: templates/django_messages/view.html:13 +msgid "DATETIME_FORMAT" +msgstr "j F Y, G:i" + +#: templates/django_messages/inbox.html:23 +#: templates/django_messages/outbox.html:20 +msgid "delete" +msgstr "effacer" + +#: templates/django_messages/inbox.html:29 +#: templates/django_messages/outbox.html:26 +#: templates/django_messages/trash.html:26 +msgid "No messages." +msgstr "Aucun message." + +#: templates/django_messages/new_message.html:4 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Bonjour %(recipient)s,\n" +"\n" +"vous avez reçu un message privé de %(sender)s avec\n" +"le contenu suivant :" + +#: templates/django_messages/new_message.html:12 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Envoyé depuis %(site_url)s" + +#: templates/django_messages/new_message.html:14 +#: templates/django_messages/view.html:20 +msgid "Reply" +msgstr "Répondre" + +#: templates/django_messages/outbox.html:10 +msgid "Sent" +msgstr "Envoyé" + +#: templates/django_messages/trash.html:6 +msgid "Deleted Messages" +msgstr "Messages Effacés" + +#: templates/django_messages/trash.html:10 +#: templates/django_messages/view.html:12 +msgid "Date" +msgstr "Date" + +#: templates/django_messages/trash.html:20 +msgid "undelete" +msgstr "restaurer" + +#: templates/django_messages/trash.html:29 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Les Messages Effacés sont enlevé de la poubelle a intervalles irréguliers, " +"ne comptez pas sur cette fonctionnalité pour du stockage à long terme." + +#: templates/django_messages/view.html:6 +msgid "View Message" +msgstr "Voir Message" + +#: templates/django_messages/view.html:22 +msgid "Delete" +msgstr "Effacer" + +#: templates/notification/messages_deleted/full.txt:1 +#, python-format +msgid "You have deleted the message '%(message)s'." +msgstr "Vous avez effacé le message '%(message)s'." + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" +"Vous avez effacé le message %(message)s." + +#: templates/notification/messages_received/full.txt:1 +#, fuzzy, python-format +#| msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgid "" +"%(message_sender)s has sent you a message:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" +"%(message_sender)s vous a envoyé une réponse à %(message_parent_msg)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Vous avez reçu le message %(message)s de " +"%(message_sender)s." + +#: templates/notification/messages_received/short.txt:1 +#: templates/notification/messages_reply_received/short.txt:1 +#, python-format +msgid "%(notice)s by %(message_sender)s" +msgstr "" + +#: templates/notification/messages_recovered/full.txt:1 +#, python-format +msgid "You have recovered the message '%(message)s'." +msgstr "vous avez récupéré le message '%(message)s'." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" +"Vous avez récupéré le message %(message)s." + +#: templates/notification/messages_replied/full.txt:1 +#, python-format +msgid "" +"You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +msgstr "" +"Vous avez répondu à '%(message_parent_msg)s' de %(message_recipient)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Vous avez répondu à %(message_parent_msg)s " +"de %(message_recipient)s." + +#: templates/notification/messages_reply_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s replied to '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s vous a envoyé une réponse à %(message_parent_msg)s." + +#: templates/notification/messages_sent/full.txt:1 +#, python-format +msgid "You have sent the message '%(message)s' to %(message_recipient)s." +msgstr "Vous avez envoyé le message '%(message)s' à %(message_recipient)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" +"Vous avez envoyé le message %(message)s à " +"%(message_recipient)s." + +#: utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s a écrit:\n" +"%(body)s" + +#: utils.py:54 +#, fuzzy, python-format +#| msgid "Re: %(subject)s" +msgid "Re%(prefix)s: %(subject)s" +msgstr "Re: %(subject)s" + +#: utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nouveau message: %(subject)s" + +#: views.py:79 views.py:116 +msgid "Message successfully sent." +msgstr "Message envoyé avec succès." + +#: views.py:98 views.py:194 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:159 +msgid "Message successfully deleted." +msgstr "Message effacé avec succès." + +#: views.py:186 +msgid "Message successfully recovered." +msgstr "Message récupéré avec succès." + +#~ msgid "There is no user with this username." +#~ msgstr "Il n'y a pas d'utilisateur avec ce nom d'utilisateur." + +#~ msgid "New Message:" +#~ msgstr "Nouveau Message:" + +#~ msgid "You have received a message from %(message_sender)s." +#~ msgstr "Vous avez reçu un message de %(message_sender)s." + +#~ msgid "" +#~ "%(message_sender)s has sent you a reply to " +#~ "'%(message_parent_msg)s'." +#~ msgstr "" +#~ "%(message_sender)s vous a envoyé une " +#~ "réponse à '%(message_parent_msg)s'." diff --git a/django_messages/locale/it/LC_MESSAGES/django.mo b/django_messages/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..451a8aacfddc71bfc1cc54e403e131564095fddf GIT binary patch literal 5138 zcmbW4ON<;x8Gs8CUV}r3d4zW=wv%}A_Ux{W6Eohmu-D#rfsI$YgN2F6rgo-hwn9(W zq^o-!TjT&o9tsB#5`r62goFSg1tAFG7;%V16mbC*af(E)ffF3~{(eo*+K$4uruyry z=l`m|YhFEg`wtY?8OkRp2i~sKCj9Sh+_)~jL#cCc6@CnU2fhXr3RLh1JnD1P`B6np)!tp7EXb$$=U-Y=E)uRxLK?@;Xj2IQyy!%ggYfI(7!1TMhY z^8GQ0s%ijNU_%hfL%mk4td^6|q@ma8PN++1v>VGv z6S4HbC7Op~1}!gon7C}L-JqyztMg~O7rLu!7q(U|ZLFQ`s`Jd3-{w*~;wg+msmRf< z*7Y}3X!Jtgk=qUXdXTtLE>fBpzoSj6vp5NdS!5Dz<1|cmP2^{F-^CB43_?&B)8BeM zK%I=4MDWPP!$5@4K6MFpZmWx76p1yHuxG~>L(cfwR!fXcO=x9pqsNKeMTy!Txin2n z+jOTT1{*kLyK3X1?m482Q{Pdm@wR(PRpu?JOZBUIy-}{#tU&W5>^Ex0k!`$hGJoCZ zvtADm4l;34zp!ol=B+4J%zTS>3Aeh*t4G4Cx{|)}+`(u*+kPVKVKTLz2VrF(wGmD? z*V^$=n3*o+Qzb1o_!^^Fe%X-l3PJ;m5^RKrA5RbqD{lCEQyeDvyfJG zryM0)AvQ#M9&a}8xgnU zLucxW8NWDZ&a_oM4{H|Dwy%jQZBb(?eM~Pd55HG8oyRGzRDd5*oE!a^M$^F?7stmR2c^1zgvO&#KOQ|-AoZ>ux+ zO}o_=y-8~!)r|{RQc8v@9k13CCp$7&?FW}h@nr2z)#h95E|;XinjhMJa4sAApzAui zwSK7^!HP>pzN2+K&fopg@zc6^Tsj)-dzbXW%<0ybgLN17Z5mVxb@Xa# zB5UFn-|D^lm0;5&6ZbJ2A2>eu*7I>r4IZ9!Zf>Zl4?cr^FR^LrnqU3vxGPlMEKRK* zMpkF?U9#n;0S~B6#_ZZMeM*G{gSJr_IO4g1>A5I1DWAa+qeDFo6P@mvQoFo5i#ZWw zBpq4_|7jV?S4C0ra%w@uA~@U}tsAX}}By7Q+(2So6t@F@{-_R94Rg_a@pkoD>SD z45eF?#Y0D=BqJMhSXj2^#D0_9~-cPc#mCNoai_iv@ovc^pcyh zI4Ll=GqJ%&F<;Y5Yk6uHXVeCA^#G^K5z|!&AeJGT)J7FatMRTC4@~AOYMLW!V>>y= z=<;mgszZSYLDtI%0twVxb+P$Mw`y09WNw$7P^q=|efj{g8aMU=2ZZU?TKV&NB%oeG z7&l)g@#Bc>!WwbkPRvqHVK}Z~AGO9V67SRxdnVW%%ch>#OczG9s%$8IJ~@0`8V*A? zCLvuq-V&6fa)WRlm6$FMA8gd->0`NwZgrUz8|J!5*fsn#wO!xBXSq6n$TUe6z5AP_ z(6!h#lYcH8t@EiTF*u!4{%;xcOvonR-=U+{G2e`puv4c4k++K3eOjWKrl;nvJjK~V zQlsK@!OkHP%M71CPZp=TvYXnOb~Nd=kX|yiwAGruSxfU%(&y81!yJ`$Z_-$ab(2w* Jkb5$p`X4>Aih%$C literal 0 HcmV?d00001 diff --git a/django_messages/locale/it/LC_MESSAGES/django.po b/django_messages/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000..caf7f9d --- /dev/null +++ b/django_messages/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,317 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Sergio Morstabilini , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-03 12:31-0700\n" +"PO-Revision-Date: 2010-03-03 21:58+0100\n" +"Last-Translator: Sergio Morstabilini \n" +"Language-Team: Sergio Morstabilini \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Italian\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Destinatario" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Messaggio" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Oggetto" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Messaggio" + +#: management.py:9 +msgid "Message Received" +msgstr "Messaggio Ricevuto" + +#: management.py:9 +msgid "you have received a message" +msgstr "hai ricevuto un messaggio" + +#: management.py:10 +msgid "Message Sent" +msgstr "Messaggio Inviato" + +#: management.py:10 +msgid "you have sent a message" +msgstr "hai inviato un messaggio" + +#: management.py:11 +msgid "Message Replied" +msgstr "Risposta Inviata" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "hai risposto ad un messaggio" + +#: management.py:12 +msgid "Reply Received" +msgstr "Risposta Ricevuta" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "hai ricevuto una risposta ad un messaggio" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Messaggio Cancellato" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "hai cancellato un messaggio" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Messaggio Ripristinato" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "hai ripristinato un messaggio" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Mittente" + +#: models.py:53 +msgid "Parent message" +msgstr "In risposta a" + +#: models.py:54 +msgid "sent at" +msgstr "inviato il" + +#: models.py:55 +msgid "read at" +msgstr "letto il" + +#: models.py:56 +msgid "replied at" +msgstr "risposto il" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Mittente cancellato il" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Destinatario cancellato il" + +#: models.py:89 +msgid "Messages" +msgstr "Messaggi" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Messaggio inviato con successo." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s ha scritto:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Messaggio cancellato con successo." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Messaggio recuperato con successo." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Messaggi Ricevuti" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Messaggi Inviati" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nuovo Messaggio" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Cestino" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Scrivi Messaggio" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Invia" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Ricevuto" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Azione" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "j F Y, G:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "cancella" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Spedito da %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Rispondi" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Spedito" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Messaggi Cancellati" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Data" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "ripristina" + +#: templates/messages/trash.html:23 +msgid "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." +msgstr "I messaggi cancellati sono rimossi dal cestino ad intervalli irregolari, non affidatevi a questa cartella per salvare messaggi a lungo termine." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Vedi Messaggio" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Cancella" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "You have deleted the message %(message)s." +msgstr "Hai cancellato il messaggio %(message)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "You have recovered the message %(message)s." +msgstr "Hai ripristinato il messaggio %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "You have received the message %(message)s from %(message_sender)s." +msgstr "Hai ricevuto il messaggio %(message)s da %(message_sender)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s ha mandato una risposta a %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "You have sent the message %(message)s to %(message_recipient)s." +msgstr "Hai inviato il messaggio %(message)s a %(message_recipient)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "You have replied to %(message_parent_msg)s from %(message_recipient)s." +msgstr "Hai risposto a %(message_parent_msg)s ricevuto da %(message_recipient)s." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Ciao %(recipient)s,\n" +"\n" +"hai ricevuto un messaggio privato da %(sender)s con\n" +"il seguente contenuto:" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Crea il messaggio facoltativamente per tutti gli utenti o per un gruppo di utenti." + +#: admin.py:15 +msgid "group" +msgstr "gruppo" + +#: admin.py:23 +msgid "All users" +msgstr "Tutti gli utenti" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "I seguenti nomi utente sono incorretti: %(users)s" + +#: admin.py:45 +msgid "Date/time" +msgstr "Data/ora" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nuovo Messaggio: %(subject)s" + +#~ msgid "There is no user with this username." +#~ msgstr "Non esiste un utente con questo nome." + +#~ msgid "New Message:" +#~ msgstr "Nuovo Messaggio:" + +#~ msgid "You have deleted the message '%(message)s'." +#~ msgstr "Hai cancellato il messaggio '%(message)s'." + +#~ msgid "You have received a message from %(message_sender)s." +#~ msgstr "Hai ricevuto un messaggio da %(message_sender)s." + +#~ msgid "You have recovered the message '%(message)s'." +#~ msgstr "Hai ripristinato il messaggio '%(message)s'." + +#~ msgid "You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +#~ msgstr "Hai risposto a '%(message_parent_msg)s' ricevuto da %(message_recipient)s." + +#~ msgid "%(message_sender)s has sent you a reply to '%(message_parent_msg)s'." +#~ msgstr "%(message_sender)s ha risposto a '%(message_parent_msg)s'." + +#~ msgid "You have sent the message '%(message)s' to %(message_recipient)s." +#~ msgstr "Hai spedito il messaggio '%(message)s' a %(message_recipient)s." diff --git a/django_messages/locale/ko/LC_MESSAGES/django.mo b/django_messages/locale/ko/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1660a887acced70cf04da2c1cce79040f9093f5a GIT binary patch literal 5024 zcmb`JTWlQF8OKk#whQ5s-b+gkA%VEbtk;1QXX8XTA;BiNv65|QDj|2`Jzfu4&unLA z9V~%l9D^b|0!zeV32SQ+aZIALbzxIX>-4cwA1bv{dEp^ytBQx6u_~zYP^nV;|IVD5 zon5sH40g5BV^z%$@&;5_&x z@MqvH;39Z8copmff3MniV=|3z0BQavkk%*hx(D0=7Qq9c4laRM%I?3NG5pvjylCHT zAkFUp?*)5Qe;;@!+7|d7@C9%Kcn&0ae+7OK{0O`Qyas*)tbuodH)D|YUk}o}jd+oq zTfwh@J3x}>DUjy(f}~F$2vJ!UBzaD#{ujY@Xpezk1E)Y7#pb~j_;Zl<`!h&#e*!)U z{sa6mxC@7OgJm!aegZxV9!v!1T?A?U0!aJ*62y=FMzwzjVk`DXko5l;ybrt%J_Ozi zBaofi!LNfyLGrr^>R(`N5L?uIg?=d&Q$KdahBko0~5B!9mOLR9t#HU2S( zANz~y|GR4c6MPf>x5JneXK#bF?{$#Qxed;sb?X%G18KZPwbP1SAnA7$Bz=CO+OL7M z&m|BlvtNLu=MqT!{t3j7{Z+L;14(W=gzS_6Y5hYW&DTI0-=(-8qi45iY;>TI?zr06BPbLPUqvCi(bEz@+GU5T6SktXqEH?` zibDCe35D$0jzUio1ulbfTZV+==sD5n2s10}7Kab&4oAb~BUX{?+!lrW2zM=BpIXpu zjQ0&WxfUmhEuy6-ZOawu#O5u>t?WpP!#ew2!!lWCKF^DeupPD+{cN8#RInVudxDeM zK3nLnaJV}txRQoj1zM@+arA&?b5w#II5l|Awu%LA4Fr8j_C#l9f2O-X68W=Q=AoIP`+PL)Ng!@&Vf#k|Mdb?hJC>(V$c8?}rBmisYnhVB6&Cqfji^`M-=)xJ5$_`@T5I zL+NAnG>qmHk3T2+VKUY$gD^A@J1iQ9BkfQL%#10j7D@}Jq7&gAym_<+dS)5Dgsl)? zBCSBLP)LU+xk1E0M8g$*MLQ1}j|9@POoO8+6-*tGF5}HG`z_msP9(p~5-iM6%(0_J z%n-*AAcOj_h$M-pONY(}Z85NWV?9Zw1RM869W72rtG*}6qJ3~?5N$WKQK&7{Xt+Ka z4+y;8kl8mTs*FRrh1RgVFMdCf(#^6$^Dy&b;yUER8?!~j?bxt;kQYo|SPb_Za@z$1 zbx@Uuf_7-!Fma)=2(R(PP$y*<@HM*?Re0wUjQ^T*Vjkj%2 zKhmb99!sS#Q9CS#4caxD*S1|t;rA$SOQm7cW0n zG@rq(-0>W>9*6x-nAS`3apG+G#q~gz)6Xu;oph<=%(meq|am`IVRa z@{;#w^($p>>Y_3X_eFU{@t>aF92*#Jz>LeC!+gEzPK7W|S|#x=0F5zsrKT3Y<*y)@V2@v|QjQZ>r>v zRlN&K;p8AZq85e7xN6baa<58sb}}}kwyG?yKH3~?p^Q<`#Nwy%iw(oVF, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: 2012-02-04 10:58+0900\n" +"Last-Translator: Jeong YunWon \n" +"Language-Team: Jeong YunWon \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Korean\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "받는이" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "쪽지" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "제목" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "내용" + +#: management.py:9 +msgid "Message Received" +msgstr "받은 시각" + +#: management.py:9 +msgid "you have received a message" +msgstr "쪽지를 받았습니다" + +#: management.py:10 +msgid "Message Sent" +msgstr "쪽지 보냄" + +#: management.py:10 +msgid "you have sent a message" +msgstr "쪽지를 보냈습니다" + +#: management.py:11 +msgid "Message Replied" +msgstr "쪽지 답장" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "쪽지에 답장하였습니다" + +#: management.py:12 +msgid "Reply Received" +msgstr "답장 받음" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "쪽지에 답장을 받았습니다" + +#: management.py:13 +msgid "Message Deleted" +msgstr "쪽지 지움" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "쪽지를 지웠습니다" + +#: management.py:14 +msgid "Message Recovered" +msgstr "쪽지 되살림" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "쪽지를 되살렸습니다" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "보낸이" + +#: models.py:53 +msgid "Parent message" +msgstr "이전 쪽지" + +#: models.py:54 +msgid "sent at" +msgstr "보낸 시각:" + +#: models.py:55 +msgid "read at" +msgstr "읽은 시각:" + +#: models.py:56 +msgid "replied at" +msgstr "답장 시각:" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "보낸이가 지운 시각:" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "받는이가 지운 시각:" + +#: models.py:89 +msgid "Messages" +msgstr "쪽지" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "쪽지를 보냈습니다." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s 님의 글:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "쪽지를 지웠습니다." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "쪽지를 되살렸습니다." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "받은 편지함" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "보낸 편지함" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "새 쪽지" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "휴지통" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "새 쪽지 쓰기" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "보내기" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "받은 시각" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "할일" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "Y-m-d G:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "지우기" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "%(site_url)s 에서 보냄" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "답장" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "보낸 시각" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "지운 쪽지" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "날짜" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "되살리기" + +#: templates/messages/trash.html:23 +msgid "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." +msgstr "지운 쪽지는 비정기적으로 휴지통에서 완전히 삭제됩니다. 오래 보관해야 하는 쪽지에 이 기능을 사용하지 마세요." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "쪽지 보기" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "지우기" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "You have deleted the message %(message)s." +msgstr "%(message)s 지윘습니다." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "You have recovered the message %(message)s." +msgstr "%(message)s 되살렸습니다." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "You have received the message %(message)s from %(message_sender)s." +msgstr "%(message_sender)s 님에게 %(message)s 받았습니다." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s 님이 %(message_parent_msg)s 에 답장을 보냈습니다." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "You have sent the message %(message)s to %(message_recipient)s." +msgstr "%(message_recipient)s 님에게 %(message)s 보냈습니다." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "You have replied to %(message_parent_msg)s from %(message_recipient)s." +msgstr "%(message_recipient)s 님의 %(message_parent_msg)s 에 답장하였습니다." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"%(recipient)s 님\n" +"\n" +"%(sender)s 님께 다음 내용으로 쪽지를 받았습니다:" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Creates the message optionally for all users or a group of users." + +#: admin.py:15 +msgid "group" +msgstr "그룹" + +#: admin.py:23 +msgid "All users" +msgstr "모든 사용자" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "올바르지 않은 사용자 이름을 입력하였습니다: %(users)s" + +#: admin.py:45 +msgid "Date/time" +msgstr "날짜/시각" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "새 쪽지: %(subject)s" + diff --git a/django_messages/locale/lt/LC_MESSAGES/django.mo b/django_messages/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3760c76f6cb37938c8774905c5e9ab7901486a2d GIT binary patch literal 4970 zcmbW3U2I%O6@aHu0$o~KLc?Du9Rg|NCc9ZD4N132S|?2$Cw3B?tx=GWJMmtx$KJhn zd*@!KMnY6Tg#-c#iE3pbp<3|NJ|OWUo+zl=MZ874pcbJDq2{HPkPw0g5Qy*GKi^FZ zYIC)7zqvDWX3jZt=FGmn{r2Y-&tsHNQ0{$~QkUVKxAWrZy+^4N@M-vQ_%pZ-UW0eQ z-$NPtCwMo!4kzH>v+u(Umi|d7&+)nkei6pdhX%d@5ml$(s}w&q%}eHOLK)wJ zAB1t%{tb91-+g!={1Ln#z5+$xKg0LIf5Z2~ZG3zbZigbb7k&U9fwImdFW`sa5Tb(mBdo(Wpv<>}MMRICa1!o; zPr)9Xg1>_;xU+(<;ImNHdmW1Wbtv<`1^KDJW#9jSETOhxwD{p}xD!4EAAqN!_^S&) z0>1@i|9=S2+@{p8q3q)w7$M`%L7C4&@lyz8-LFFN$2XzG&^km^y#~cU*R$_8A*QH* zK=G#twZRT}7JeCuUB890&Na9lz6$xNx3celLh4@JKX zDD%DuW!%r<$KbD^==U1@6#NU6c(@1W3HQQJ!_$y$Pjn^)sD~)xFHL!nGEO-_k+tQK zm^hl$lsX0vW%UM>eR(ANem4|7<-xVdnfNT+D-AqitN2rVB+ro)#as47^prEQpR$J{ z&!Z`l_hH^*`)-QZDsjAvA`k9U4^yfXiGw;t;w68?c3hI|Mc%fLip0=XkN8^rDtj!C zoSn~5#OLB)wo#2y4pM3q*;_ep#j|@)*K^Lay?N*PEiW8%ddWD=N2J$+SQ{OBz0R7B z0=+r3XF~etyRJRvYHIhMLiB1FL|&t^d(V}iwKnF|#6n~PUrls6I(A;@)CtTTMMN(LB|hnmILp z`oiqYL{mM%e93EnWV_V7jwcNXTKT%}rUs2&*xL_@vN+EbT7247*Y5m(WdNa8!c7DVT%E?UA2B&F9c}iN3Nl!{42pTDtB*2 zotdAv>)C9zas!r!UaQp7>)6uwCFUp(^h>xET~3|% zuIgO-QoVuGTzqBOTfk-Ne2_bb7`&K7WZs}=z0t9SsZ>&*GbF3!sWbz0F)XR;WDjr67bB^1WcKuss3dzS zk{$;=f~h%FlSN@ntR)#slETO~n{7|)iuzKKOJzj4dI=Huv zWM$g8sLI*#UB{4n8~T!oJ2rOu3trdQh#$H7s7o6k|I%h-trHzb+Hc3?>uS?8-G-i? zI6wKMSaEcE`tgpf1!4PmWrizf)6Vf)y>c?m!PVwk5B($WnP`8nW32zEURW}r^P*!< zHcwZNY>pH47QL`~ii6)Gi#POkZdsor>&h!tmJKN|F(g^gXi?%$K;88WI57D zu4OvRaAVLf-OO{IU2$FGNGs0jRTD-*6f7I7nsI3THK)$SVPy62W$VY$V4dW(LWe0D zv}}Oab(^BpO?XA_=D6os-80TI(@JE0W3{@hmuvd`K7FQPe5L+oce#=Iha0BDTecJbM`O4Y~saM-h+sKz4{xqF&@a?3! zVdItIM#q}gpg(+h&|l_azVS+)G^_lb(Z+Q>-}-~~T%~pG$8v#lFw%caF0KrjFwk84 z*0*s(O`13goErWzabLfvXmm_WHOY{|pQRBKk&8^UhKq9PY`@Dbc+6o3BR5C6L4T!7 z2;uHxmD-lw#80}!*4;>FlW+EO-lFb{KyhqZczZ20#9ZWYBK)>3-`p&c>^7lr(F?JC_)<9Nm(Nu)LaZau z^27FauC@FE&tmkQi)JyL=Z-vWLow<%SMx=GUATx;z%sXnM`AjKxI^Z0%=Q*lU2)Nd?J6tmZm-JG@;}U k8EMRdInC*#Ba*Hgy;-c4T?!=^q+O|2iCAtClNU4p7exuBH2?qr literal 0 HcmV?d00001 diff --git a/django_messages/locale/lt/LC_MESSAGES/django.po b/django_messages/locale/lt/LC_MESSAGES/django.po new file mode 100644 index 0000000..14a833f --- /dev/null +++ b/django_messages/locale/lt/LC_MESSAGES/django.po @@ -0,0 +1,320 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: 2015-03-24 10:53+0200\n" +"Last-Translator: Saulius Zemaitaitis \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Gavėjas" + +#: admin.py:15 +msgid "group" +msgstr "Grupė" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" +"Sukuria žinutę visiems vartotojams arba grupei pasirinktinai " + + +#: admin.py:23 +msgid "All users" +msgstr "Visi vartotojai" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Žinutė" + +#: admin.py:45 +msgid "Date/time" +msgstr "Data/Laikas" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Šie vartotojų vardai yra neteisingi: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Tema" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Turinys" + +#: management.py:9 +msgid "Message Received" +msgstr "Gauta žinutė" + +#: management.py:9 +msgid "you have received a message" +msgstr "jūs gavote žinutę" + +#: management.py:10 +msgid "Message Sent" +msgstr "Žinutė Išsiųsta" + +#: management.py:10 +msgid "you have sent a message" +msgstr "jūs išsiuntėte žinutę" + +#: management.py:11 +msgid "Message Replied" +msgstr "Žinutė atsakyta" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "jūs atsakėte į žinutę" + +#: management.py:12 +msgid "Reply Received" +msgstr "Gautas atsakymas" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "jūs gavote atsakymą į žinutę" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Žinutė ištrinta" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "jūs ištrynėte žinutę" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Žinutė Atstatyta" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "jūs atstatėte ištrintą žinutę" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Siuntėjas" + +#: models.py:53 +msgid "Parent message" +msgstr "Pirminė žinutė" + +#: models.py:54 +msgid "sent at" +msgstr "išsiųsta" + +#: models.py:55 +msgid "read at" +msgstr "perskaityta" + +#: models.py:56 +msgid "replied at" +msgstr "atsakyta" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Siuntėjas ištrynė" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Gavėjas ištrynė" + +#: models.py:89 +msgid "Messages" +msgstr "Žinutės" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nauja žinutė: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Žinutė sėkmingai išsiųsta." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s parašė:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Ats: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Žinutė sėkmingai ištrinta." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Žinutė sėkmingai atstatyta." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Gautos" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Išsiųstos žinutės" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nauja žinutė" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Ištrintos" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Kurti žinutę" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Siųsti" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Gauta" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Veiksmas" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "Y j. N, H:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "ištrinti" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "Žinučių nėra." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"%(recipient)s,\n" +"\n" +"Gavote asmeninę žinutę nuo %(sender)s su\n" +"šiuo turiniu:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Siųsta iš %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Atsakyti" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Išsiųsta" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Ištrintos žinutės" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Data" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "atstatyti" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Ištrintos žinutės pašalinamos periodiškai, nelaikykite ilgalaikių žinučių " +"šiukšliadėžėje." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Peržiūrėti žinutę" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Ištrinti" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" +"Ištrynėte žinutę %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Gavote žinutę %(message)s nuo %" +"(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" +"Atstatėte žinutę %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Jūs atsakėte į žinutę %(message_parent_msg)" +"s nuo %(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s atsiuntė atsakymą į %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Išsiuntėte žinutę %(message)s %" +"(message_recipient)s." diff --git a/django_messages/locale/nl/LC_MESSAGES/django.mo b/django_messages/locale/nl/LC_MESSAGES/django.mo new file mode 100755 index 0000000000000000000000000000000000000000..cc71ed89258d4b0a56bb1e4c1bd2b6f38ff15ce2 GIT binary patch literal 5071 zcmbuCU5H#)9l%dN)H=4t#_y`lF{UV-ft+bbCeHK?!Q~9%kV$W&NJe2;+@Ilzh z>$lJS?d>Z}}eg-~;@Fx5= z^x$joQ}7eDOx|~(jDH!*yw@N<^|So_SCFaHZ=u-#NB9AF9exx(h!ez5OYpt$3Y2vZ z;L2S}eHlK>`zt6X^$%f;$U6hYPiLXn-Gc9gZPS`UNQU=b_l~92EN^DEfXCioEYaM5t>} z{O}7X{{AzR@qdTX@4q?kLx{x1VJP~XfFkb+DE@3hT%)$2%=c+1;}4+3$rqu>|7KqQ z19+PEpF^4NI>e+@coQ5#iEVfl%KHBZ8h95%JFpK$-mjtf^Y>8Z`4beoUWa1Obtrzj zo5gq-)}Z)h4m$AZygte6zYayu??aY5l`#*+cDZCsafw{H9?g*6W$h)7R@q_rTxWu1FDIcR~id?9d?ib8cAEAitvhUjV!cDYB0rr-+}A zQ6#@CQRJ#qSUQY5J~C0{_RV%=0?&kVksi2_<|Wn#HqovQ&3JgAW2+}!$8Jdb_9*Jl zMRleqhwg_qHjUaN$2-XD)s8T9gS^dbSsmr&WFa0O{C+2 z(YZF-j%B1fM0C%Fnulx#Eibws+GMP4FRQDo3oGrlcC)p%eQ{%}wbE7>m@mDZjQtT$ zW@w}$g;&UpZmQ7Og}o!YXFS~t?I=|#4&7*=-B>3MrM-9~sI`(;0xHqTH%`fWpRxYhtf#sp`DmCMw zUwOaG{AFX5bi1rzFOfy^GT+u`w_;c}^Z#j=a4VZ4b;<1OLi@^d1E)nvXUBALnc7T) zuyBytGSkhabv$Hlrc3@*Xv?BfNqA>>U5>#{Psz=MIjTcaFUYM>GLlYl7BQ&k$7VYT zhv;}Y(^j>o7D~24;1cO+y!k=bh9NeI{^>4ZU|V8NUGXc9xJrNw+&xojQr#}gt{#M@ zclPLHlcpLRJy%xDMaw7Mb9GhDgUl@2Zfl~#TFjVAAJYP|RiE0~x2I|vhmwVEVfc16 zKZ(&d>WbyX&a0>!$r|3CFQ&5N)a=>5P-((a_s3^Q|hOohUPSWAx(tEnhj&874?13Sxx$p)3yy=+uUe7=@GzCM>2OqpITUW(&4wbs25K)9$R!4&MYj@ z(b+P4zKF>CU0qw*a#|bCg%!QN(P%YKd~)N`TJ2dkiXC=P5Di_DZbR>eezaqj^s*oH z?8o!Bde@H5(KqNPq-CdV+|e8KthG2^CI&9n7i#CTeCxCi#;6>d=i`&(q3Z`v>F&S{ zBNLx}u6@y2n)DNmdM0$%*zq12yP=mleq7@Ky>S!ifib;U?-*@Npxq$ew>I=R6iE?9 z-)fNSzKP-_3B9S)IO>uUOz(#C*vN5g7|{t6e^(CWW-zb``Ht@XPA?VNF`?fbkn3G{ zH%6OS=Qa7kY|K#ap_3fU)w$$M7L|#2GuC@9PoYAhPEHOa6Lj2N&0&^Jm%7f%@ok19H}?BRi#!v|OP`ppiG3aT zSc!){^8%-867cC_G8>1)h?j&i%8rStK4&;~-+YEYV{la`PCYQjv(^Sfe`j~%yCB9T zeRLJiR8I4eiEF67XNNTM;HN9nP@6Vl#I9}zDtAIbJ#kQ3wNXr8)~usMY=&N0v1*E7 zDyx_%i=DD2JJ?aC;=uZh)x>2W&xUwlofV+vc{9I zferbd*f-&r56{V3Pd12r69oDNeiD6>z3iive~ zXEWI%0`mYbauw%E`rqPC=buDep(h*m77V@liy+&8g?^PIn}k)w%bjW)xcpU^B, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: django-messages-0.4.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: krisje8 \n" +"Language-Team: krisje8 %(message)s." +msgstr "" +"Je hebt het bericht %(message)s verwijderd." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Je hebt het bericht %(message)s ontvangen " +"van %(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" +"Je hebt het bericht %(message)s hersteld." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Je hebt op %(message_parent_msg)s van %" +"(message_recipient)s geantwoord." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s heeft je een antwoord op %(message_parent_msg)s gestuurd." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Je hebt het bericht %(message)s naar %" +"(message_recipient)s gestuurd." diff --git a/django_messages/locale/pl/LC_MESSAGES/django.mo b/django_messages/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..22792544964dce291f9a7f6715e783497acc0d7e GIT binary patch literal 3522 zcmaKtTWnNC7{^CNkQGJne#7wsw9->rkccZ1mUe-LZMSK+C6X93J!jg^cK6JB=A16O z@u>lcmj@EV1Ckh`G2wv+4L%t(A#{TwK9d-OF_QRX;)BM-2c!S*+`8LVCuioj^UdwM z&Fqhx*PLZ2yHTG){qhdR4ugfe(4fq&VeAP|fos8&AU^g!nvLL@xPJkp@z1~qz)N5N zehmt6_uY))V`tH<1J8rB{!@_VUj{dUi?RGBxB>lNz^B3A!DqltIE3`+2k!w3;Jx4k z_!ua_`@tqi`@aj)ymR1s@DuPM@DhkE*;SC{Uk9Noy9wfBKcFFfevajTfcK&Q7x)Oc z4n~k2ThR1@+d$gy7)W}*0b(jEgZS86Xfj|U?w@0>75jc z4c(Kis21wusN_G&K`In;%1_F@7g3j&J0W-uwFi~_*M&-Prb78loqbmE8A)ndQRgf$Pbcpdvi3Twi+gqGEcuquuR37F8NtyO^&GpO(T8u+y~m zctyK2manRk8((|SsFxj)m5SzDyF6*Dnv$;HZF(}9h7PccEft+Dc+FGuP@PvJJ0fk` zeW3i=3~4v5v0GiaGu+nD%Jof_4Y^bL1WQ~HlSf`~5;-4>Piq&za!9yluS8n}6~bDj5w$#B13Mi?jr3x)FA2RsO`@csNq!n5<;yn%uL2#% zBW+o!BT#{no+}X9FyEAGYtMsCq(2QAEG$vZu}RhDh{(gtlLGnSgJEdsr=i2a0Q!cB zPPsHI=H-&oshiRvoS5VqGzss@YGZUvgZmmOxyrOih1EwRtyZo|w4^LgwjA{|Mb#Q| ztVuWkw>is4a|1_nhx2?gKQ=y89LXS1+VibpGou{qU@&8>lFstXXt87sz$x?uSajR7 zd{1f0q(R_lA@aBh1|&D2~v4q zp>Uw0dbKyRKQlZuoL@4kzqcs zF4NMp^2ihiH$BVuPANar{v^7hri^GUw7rUA&Mpfil5Cw{Jk7@a`nAhmlh>7SbXA8k zcuTMe6SPjUV~N;S+{_81>%x_t(#2CeFagPVlONTlDY&cfT7)kme)aMZC3!{J%^u#m zf=TeBfZQ~B8INe-i!!fi?z9$y))muiRJn~QicY~$&x!|8`yM92CK$lA!?CL2&*{3W z<^(+i>Ayju`r_$~<}OZMJXZ_Ki>GW^#@mh6w#s&x67Sq@AUu@1VDWV70?{E&)-97d z%?4cN3RZM#c!{Oc`ij>ZrnNw__FY#MCf@Fxs?$yXe*;^w5yYw^tjh(R@8YPgc}?lK zs&f%^@0?eR+z%%eohhX~TdwHC(*@$pN9Xmu^JlD2E zY9BH$c2H;HEeRu^Qu+zfB%mx9&=`ch`H*e5Fo1~slp ilH_UrxSi2yJ2slSY&=qA<>tjmuV^62G, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Odbiorca" + +#: admin.py:15 +msgid "group" +msgstr "" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: admin.py:23 +msgid "All users" +msgstr "" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Wiadomość" + +#: admin.py:45 +#, fuzzy +msgid "Date/time" +msgstr "Data" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Te nazwy użytkowników są niewłaściwe: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Temat" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Treść" + +#: management.py:9 +msgid "Message Received" +msgstr "Wiadomość otrzymana" + +#: management.py:9 +msgid "you have received a message" +msgstr "otrzymałeś wiadomość" + +#: management.py:10 +msgid "Message Sent" +msgstr "Wiadomość wysłana" + +#: management.py:10 +msgid "you have sent a message" +msgstr "wysłałeś wiadomość" + +#: management.py:11 +msgid "Message Replied" +msgstr "Odpowiedź wysłana" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "odpowiedziałeś na wiadomość" + +#: management.py:12 +msgid "Reply Received" +msgstr "Odpowiedź otrzymana" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "Dostałeś odpowiedź na wiadomość" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Wiadomość skasowana" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "skasowałeś wiadomość" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Wiadomość odzyskana" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "Odzyskałeś skasowaną wiadomość" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Nadawca" + +#: models.py:53 +msgid "Parent message" +msgstr "Poprzednia wiadomość" + +#: models.py:54 +msgid "sent at" +msgstr "wysłano" + +#: models.py:55 +msgid "read at" +msgstr "przeczytano" + +#: models.py:56 +msgid "replied at" +msgstr "odpowiedziano" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Nadawcę skasowano" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Adresata skasowano" + +#: models.py:89 +msgid "Messages" +msgstr "Wiadomości" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nowa wiadomość: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Wiadomość wysłana" + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s napisał:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Odp: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Wiadomość skasowana" + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Wiadomość odzyskana" + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Wiadomości otrzymane" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Wiadomości wysłane" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nowa wiadomość" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Kosz" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Stwórz wiadomość" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Wyślij" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Otrzymane" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "akcja" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "usuń" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Witaj, %(recipient)s,\n" +"\n" +"otrzymałeś od użytkownika %(sender)s wiadomość\n" +"o następującej treści:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Wysłane z adresu %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Odpowiedz" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Wiadomości wysłane" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Wiadomości skasowane" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Data" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "odzyskaj" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Wiadomości są usuwane z Kosza nieregularnie. Nie licz, że zastaniesz je " +"tutaj po dłuższym czasie" + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Zobacz wiadomość" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Usuń" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" diff --git a/django_messages/locale/pt_BR/LC_MESSAGES/django.mo b/django_messages/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..83e57045cfb2cb6f0d77b9535aa0511b103bbb9b GIT binary patch literal 4996 zcmbW3O^h5z6@Uwz1Q-G#<{yGn7{~Eq&vc>&UWbO z8g+HAZ3GuMaDYQNfCNG)5lB|TUoIf9_z_wmgiwT#!UduT4n!h1gpd&8!1thm zincY?U)SHO_g=kvH7_2#O#@y(?$E|;G3v_9=-!U0a;4jfYb1YP~`muirz25^YEYWQ}AIH zUxMF+UHB6GBz&}zulF>R`OiX;`(wyY{i3M<79vXh0gC;9g71a@f=A)KI6?e01K$ZR zL)rHjo_UQ@UxEwNe}!@~?k--Ih{C`84S3$V&5R~z!;UPE=HQa=v?-!t~`xIme z^<5}__$d^BKM(n-zw(mx{!#EhP~zeM!e#z_P}V;R#r~P1{bNw#VhM^}k3rFQ3yMFl z7wunxb?RR)>d!-2{{=V?{|>LfDvLDX7vbaZIVk%*gHVzGH7NW2t)l)ND0Y1hvZd-K z6n%dU#m?Usd>MX_`kgpU_IDb-8@7si53=3hFgV zTgQsJq>R%P@vHb)^!za8EJb|w07V|Q)a&dkyhQKA6wy~xnh z%18Yd=LMdkNdA%sw|c+Jx5S6U#4JT@C$*^$QDmRqPLchPXDWyH)0yI1aGY|IBIo!a zitNV`isY9Wiaa$6TZVDR`o_7SXEvOPyC#`(dOL8MN~*8hOb0qKgXp?WtsV^>1PT2c zeb<|EHAIwCuO>D%^~wXsHf{I%lv9mP8roPjqDW`XBu<^9UCrD6z&fK_`O0cOF+pma zPPdINw9$4TGlPhww``*M$R%j0=w4#8fwo(DTTLxA+RgS-tGThby4Gs6)dKST>tq`C z`7)7_29NG=U3Xi9#xCsb+a1%@TZ!#^mC__|+d4>f7AK~cMM0v&I5o*m5V;e&YvTt~ zCZVW}86P^mg*h3LMDfVRy{agoU1}5jTvHcJ6p1$z(+LM5j+}BQDiv`yEhdz;13gH> z9gHab;k6m}beL{e#9><&X;;Izr#lv{;?&jEQoL!esiAud>caeCyIw0+8*jk!#B|46 z22nUxUq^n~>9S6T9o))fle)QYYkT)%ST6Y$`X$`TE~i$^RXx;x?7NQBT(EJST z(FftsL2AuRc9+)ik-M28#n(_|I(9l}Um`ER!3*@^#akBTPs*gj-La$=_ z#&~`bqi@v}%ZDd#OkF2?xIbS^WXB2V`MFR&VJY$)XFG+tIehv>VMeU^Bqe!ZVw;09 z#LKR7=l*|RnYs5IR(f=g-dwBO7anRU8LHTLbuqDWBCAW?>SaG3)>XSc{s*FV_9>hvjnYPx>< zq2tu28CYF2JD~_K#$9PP)~c=5>OwEUY!x*XI}-_cHQvwQYiaT`xCQ&R-IhXP1{BiNcyqdUKT)SIWq! zQ?=>Je4b;g?dt=SP0h9R!$+&TL;b^H~XrtZ11}LRqn2)HMqR9J^aZXq5C_S)a=|8(6Z^Xn{R1!XMlTFzRU%dQvydb0Mb*@5Bs(y6s=2K%+s^JY zXw)&ACf}}+$K>WlLv$ItuRFG1vHY#-W%A!4zpHm|c5PkF2jMk8x*79NqZb@MXw7u8ftirNC}Jq?PK;|3V<{ZbqrT=29o2Te*z$h!7(Sxvwxl zVpa^^YkJIOZg&Dblr~wLys?L42&|9`d9oAhjJNkv5ykv@b7>d{sgLQxh)nN3$y9GN zSGWI?BUH}z#!E+^KZI<==xbcUEiRJq%x!ck|M1~Hanm=P%i`3kRr&9nZ?e;|<$vGU z!O*BIfmvMnsdeLb{&F7DiYz+vR~~5jNsxczWthE+dvJK;PX_CLWaPnoYsRXnQnEw{ zDPcddM^f@_n~<`<>)s!|p|-^D=&~=|nP=JkXq#ufQ9_=Oo^MmaZBIs2QP{N-k3Nyh zA@nulBdO@fPgYX+ak$Hp{fGNJa`A1MW{)nvlmxs4-Ck0LF5aV46f3Tt+ZQkPcVgQA E02mTuIsgCw literal 0 HcmV?d00001 diff --git a/django_messages/locale/pt_BR/LC_MESSAGES/django.po b/django_messages/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 0000000..ef36d4f --- /dev/null +++ b/django_messages/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,314 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Diego Martins , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 10:24+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:19 forms.py:20 models.py:52 templates/messages/outbox.html:8 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Usuário" + +#: admin.py:21 +msgid "group" +msgstr "grupo" + +#: admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Cria a mensagem para todos os usuários ou para um grupo de usuários." + +#: admin.py:29 +msgid "All users" +msgstr "Todos os usuários" + +#: admin.py:44 models.py:88 +msgid "Message" +msgstr "Mensagem" + +#: admin.py:51 +msgid "Date/time" +msgstr "Data/Hora" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Os seguintes nome de usuário estão incorretos: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:8 +#: templates/messages/outbox.html:8 templates/messages/trash.html:8 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Assunto" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Mensagem" + +#: management.py:9 +msgid "Message Received" +msgstr "Mensagem Recebida" + +#: management.py:9 +msgid "you have received a message" +msgstr "Você recebeu uma mensagem" + +#: management.py:10 +msgid "Message Sent" +msgstr "Mensagem Enviada" + +#: management.py:10 +msgid "you have sent a message" +msgstr "Você enviou uma mensagem" + +#: management.py:11 +msgid "Message Replied" +msgstr "Mensagem Respondida" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "Você respondeu uma mensagem" + +#: management.py:12 +msgid "Reply Received" +msgstr "Resposta Recebida" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "Você recebeu uma resposta de uma mensagem" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Mensagem excluída" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "Você excluiu uma mensagem" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Mensagem Recuperada" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "Você recuperou uma mensagem" + +#: models.py:51 templates/messages/inbox.html:8 +#: templates/messages/trash.html:8 templates/messages/view.html:8 +msgid "Sender" +msgstr "Remetente" + +#: models.py:53 +msgid "Parent message" +msgstr "Mensagem pai" + +#: models.py:54 +msgid "sent at" +msgstr "enviado à" + +#: models.py:55 +msgid "read at" +msgstr "lido à" + +#: models.py:56 +msgid "replied at" +msgstr "respondido à" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Remetente excluiu à" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Destinatário excluiu à" + +#: models.py:89 +msgid "Messages" +msgstr "Mensagens" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Nova Mensagem: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Mensagem enviada com sucesso." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s escreveu:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Mensagem excluida com sucesso." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Mensagem recuperada com sucesso." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Caixa de Entrada" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Mensagens Enviadas" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Nova Mensagem" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Lixeira" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Escrever Mensagem" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Enviar" + +#: templates/messages/inbox.html:8 +msgid "Received" +msgstr "Recebida" + +#: templates/messages/inbox.html:8 templates/messages/outbox.html:8 +#: templates/messages/trash.html:8 +msgid "Action" +msgstr "Ação" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +#: templates/messages/trash.html:17 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "DATETIME_FORMAT" + +#: templates/messages/inbox.html:21 templates/messages/outbox.html:18 +msgid "delete" +msgstr "excluir" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "" + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Ola %(recipient)s,\n" +"\n" +"Você recebeu uma mensagem privada de %(sender)s com\n" +"o seguinte conteúdo:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Enviado de %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Responder" + +#: templates/messages/outbox.html:8 +msgid "Sent" +msgstr "Enviada" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Mensagens Excluidas" + +#: templates/messages/trash.html:8 templates/messages/view.html:10 +msgid "Date" +msgstr "Data" + +#: templates/messages/trash.html:18 +msgid "undelete" +msgstr "recuperar" + +#: templates/messages/trash.html:27 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Mensagens excluidas são removidas da lixeira em intervalos de tempo não " +"regulares,não use a lixeira para armazenar mensagens por muito tempo." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Ver Mensagem" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Excluir" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "Você excluiu a mensagem %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Você recebeu a mensagem %(message)s de %" +"(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "Você recuperou a mensagem %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Você respondeu a mensagem %(message_parent_msg)" +"s de %(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s lhe enviou uma resposta a %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Você enviou a mensagem %(message)s para %" +"(message_recipient)s." diff --git a/django_messages/locale/ro/LC_MESSAGES/django.mo b/django_messages/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7993e9eef0a6ba32f2122c7881cadc0b3a467a62 GIT binary patch literal 4885 zcmbW3O>7-k6@YJ`q~#G>2n{U++Djm<-S|D*snaB{j)~(qu2tKy>=(C@K<@a>_476J zW*+n7#E}q4s6v7Tn^q}1BwDdxgDNBzY!HG4D+CK9Bve(X6%t*rKwTjM-?=mMery+| z8NEB-+`n_rIrrRq-djiSdsXp#mGTA3!yi%VIy`b8FP_fFl)41J2|o{i0T07Jz>mW} zLmB!udnlk9y~(*HvA%d9X<|!14ZAz!3W@f;3wc=Dv!dWQ0AS255jX$)|rF+)C;^s-IXDDg zf*m*y{|J3}yn?Ubcc85I7L@t#LXrC(vZiu`LVCVu@I6hC=T^ld@u zkD>T&7xGgt^Adl&2EPPeHEXLQidq+Pg9oYd6Gq3+Zhag>^R<>b&t#!F42(=DS5ZFJO;nO?xsn^CO!$R%j0=vEwM9UX1vZ8ddyx-r|BUz}aPa&={K zx}h#3&%H)d+vdvzMj9Oaa@}NKgT^lGZAUxC*PC(Fb}FT@muzV-)ma#uRu*`%wqa`G z9WO{mv>$~}rc6T7C}g}%^d{zHND{?^C~Q?l37w=-jGt@jITHlp&Db<;$KuH0WTa9N zXVYS=tnKMeYkp?*zo%`wRS}16Mo7D1! zv08rvmdD2LYv}~GufB@>ZfBA;o9y6bCY$8vzO5bHi($Fs59pV0>vkn-$=uMT_I=-V zoR(x8+op-j)KXMBhZtOT5m`2<6*D-tYbqbP&lysDm8!GDG!pCiTX*MRw6El4;sX6s zoJ-_YYMjWRG!Gy2wW(Rp;sAwLbJbO2VAteagdSnFKT5Y+g9gJF!lK6I0!W;bd~uo2sd<9M;T3@16ve)?&uMT{5^p z9s&c${N7Y`K`B?#T})r^zpTXQy}Dv~c?|p1O=J)6%@+e#<$(13kSKS1DK0$@dJ1!M z_;icHj97CwmRt%0+w65iyxY~?x&PnSy~Yn5*7fKCy}4HV7cRAw>#EpzwH!xsJgf75 zb&dO;E4;3kr)Qp@o}1Ncvn#9fSC=XrvM5fgi%HA+)k|3`sWzgzt}I_|R9z-uQdKVS zx;{NNcD~AQd|Z#8u0K6q9XmTV#=z=|*|8$LJ8pcUI(DWyKB32-sh>H2YK)nc1usdf zoSiTUJnr7Qp7k>?_Vq&6^z@|hGX_nV>|(3!*`U^p+EYvkTN#&hwPCz=T`x>8&0Q1K zCl?kj2DTQ(t*Oc)d8TLFcx|jQlV7~m#%>3tQ*$#N?F60;pViGRFHTH);acNL^;~b9 z=(K6#>MW<-=jyKOa~n3TyjYzxp^0;4mm}lbRFBur)FvwA*u6(fGP9R-vM|ws^S`&9 z1zZ~Cxc;yo$kCoonz2pxWa%t4su87DXQ>VBEz!YRGIf~RFiX`cQw#}EE;(=8W$atM zRm)_pJDi$0<7Dm;q!TYII}y@~$=*KldTZ6xc1m&NPx|P)Jxz{K;Q>~J0TjV9> z7B^bzNm&advr1hj8AsNJY<7kZxf*S#6H8}XJXEG^qj9lIQWYZ__psbld;{D*tXdvY{Ku}c9FKlHkRy5*UhXV=~;Z41$B;z zOe;*t&C0DRzVrT~vSON9N5Z14=i6S?8X_twD$WzSnc)k`%`T;)6?*3q_IIUj`o8u; zHN6yNg=oG8bLx_;g2$cV_{eRJChWx1Pvjt)bIaI@y;<0DL#bVe37|0J|Jh(XN@O_m$j1zK z)|B~pCQ4-VToy)_w0tY`+=;Q;xj;=5O8G`O*KjKDB2ASEStfT}bmWfxFthaz|3G^; z0Qa{0Ltk?m^Y^d_}$inW37;XY32Rq-u@?5*7Vq3~K9db5gXs^8#OHh}i+=vfqFKitg+dZq@ G=Klfx!4), YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: 2014-05-14 16:59+0200\n" +"Last-Translator: Eduard Luca \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Destinatar" + +#: admin.py:15 +msgid "group" +msgstr "grup" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" +"Creaza mesajul optional pentru toti utilizatorii sau pentru un grup de " +"utilizatori." + +#: admin.py:23 +msgid "All users" +msgstr "Toti utilizatorii" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Mesaj" + +#: admin.py:45 +msgid "Date/time" +msgstr "Data/ora" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Urmatoarele nume de utilizatori nu sunt corecte: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Subiect" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Continut" + +#: management.py:9 +msgid "Message Received" +msgstr "Mesaj Primit" + +#: management.py:9 +msgid "you have received a message" +msgstr "ati primit un mesaj nou" + +#: management.py:10 +msgid "Message Sent" +msgstr "Mesaj Trimis" + +#: management.py:10 +msgid "you have sent a message" +msgstr "ati trimis un mesaj" + +#: management.py:11 +msgid "Message Replied" +msgstr "Mesaj Raspuns" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "ati raspuns la un mesaj" + +#: management.py:12 +msgid "Reply Received" +msgstr "Raspuns Primit" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "ati primit un raspuns la un mesaj" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Mesaj Sters" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "ati sters un mesaj" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Mesaj Recuperat" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "ati recuperat un mesaj" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Expeditor" + +#: models.py:53 +msgid "Parent message" +msgstr "Mesaj parinte" + +#: models.py:54 +msgid "sent at" +msgstr "trimis" + +#: models.py:55 +msgid "read at" +msgstr "citit" + +#: models.py:56 +msgid "replied at" +msgstr "raspuns in" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Sters la expeditor" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Sters la destinatar" + +#: models.py:89 +msgid "Messages" +msgstr "Mesaje" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Mesaj Nou: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Mesaj trimis cu succes." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s a scris:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Mesaj sters cu succes." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Mesaj recuperat cu succes." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Primite" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Trimise" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Mesaj Nou" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Cos de Gunoi" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Scrie un Mesaj" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Trimite" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Primit" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Actiune" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "j. N Y, H:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "sterge" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "Nu sunt mesaje." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Buna %(recipient)s,\n" +"\n" +"ati primit un mesaj privat de la %(sender)s cu\n" +"continutul:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Trimis de %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Raspunde" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Trimis" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Mesaje Sterse" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Data" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "recupereaza" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Mesajele sterse sunt inlaturate din sistem la intervale neregulate, nu va " +"bazati pe stocarea acestor date." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Vizualizati Mesaj" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Stergere" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "Ati sters mesajul %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Ati primit mesajul %(message)s von " +"%(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "Ati recuperat mesajul %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Ati raspuns la mesajul %(message_parent_msg)s von %(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s a raspuns la mesajul %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" +"Ati trimis mesajul %(message)s an " +"%(message_recipient)s." diff --git a/django_messages/locale/ru/LC_MESSAGES/django.mo b/django_messages/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..90aeca471b58263e877cc9bc7a4bba5d58427e43 GIT binary patch literal 5984 zcmb`J+mjSm8NiQ7P{)`kNlX+qN0ek2n7u#{G69kS7T9txxI192#v;v5@9dD->9M;9 z!i#b#j7SU>#Zps+NsNEMy4ej&78c7Y%SXFkc(Ty45+Ah6(z5i$((?E9ZF+WQsV%f? zx_{H>eCM3+cD_Eh*RKA7;(D6Aw$*v4=BY?4e*e83sB^X@MEwZ zwZ91O<^6~7)9`2TQTR(J`u+ia5dIr}7_Q;v5x5r0xJ~drxC6>M2OvN7WgepMbMQfU z9Ex7wgd%?)id~l>Dyttu(d+f7eFlDn_p9*Z@K+EO)Nf%Ad>6`m53z{ou?`-99q>6= zgZ)nPj{yix3{u%O9e~;e(16e|?!D#Wr{cs)J2p@y{q4;YGJ`68H ziT|5$+xwLI1>DX1KT+;;a2v*m|Hq*C_c&Y&zXN5SEAS*-fDBbzagwb6G<*OagyOen zd2E2s!@t2-;5XnooGCElcakXPaZ$>a6hauH_r1h?2M`6sr1hC99_2I5EDkzAYkCpq5kl2}R} z;P&9cZR+#fY||j#5{pjmt=wJQQdcDo$+e+l%5)r~WFB?QYSFYi9X)9{nip4}vg+E< zwppv3(ypZ&qBX;&|LBxc>U6r)hK^+DN!xPGTxLVZF{^m0(^2_xw`^5azEaV3$Fv=_ zhjz8snyOijsRzTA)n3~)T+`9+q^Toqv{jRlMunv(EL-y@oI%TrF4HVr)>NR9Ya7m_ zHe6k=+GeRGC~x~6@?s5qN-(W*Y~G6+SjD)MDVPhd`+nMCo5RV`&j3GKL+ji0;J zL92&Jj<3w##!<4#? z#PIHX(Nrp%W)C-s3aXc)=&{jV7@EW1U{P2n*Mf>AMWHFoMv~%5R}#59_a$Y#tytpG zHoc)%tqaFmO1X*xuMXLkY|m_eF?)o1PYKWIL;1a5%pd5}NBTxa`-g`zY%^z=NL<=5M*d$;7a_GWvw_w*o`9WhUoW%5XF ztS>*39URW?%j<)~xxxNTUl|_i%M2Kfn`Q4*or*#2&FTGz2L|*|ey~sP>>JGY4?L6K zw{N6xbaXeO)l!|}oGqBfR89}%hYlPTm3IydJX0xmS$1i6W{~eo!>Hb_p3L5`;ARV_ zYAEZPFSy;ciczjUrN<`?+cDi;hYS0&I~sDL%Yz&#NK6Z&b#KH31*%5FDdVP$joVk z7rh1lCGRSn@uumY^A@~$<-I|}qW5$E0u47%VorHi0+~gIF}9^w23+-KWe)$P7770n zHhDMwZ!y(kpr)*P!&}r0S&-ftQOG~PoJy###TVYZ_TKVO`{z*orhic#@6tnhY_mR? zD=VxN3#OAl-I#eA1Fnn3Z;Emrt5SpRC?(N)k!dfm`pZmyM$DP_ zu4?ZcdQRh&d09atG#98t&rSX;iV$88BM|Bkh!O<42?w6JxEcKjl*BX%7S>;rP-*|W ztalFQG09c$I?uPosS;>{!1~kPJK|xM@ZJjASr$EzkbsY+&cxkqU$MI&8rYupjb)4*nD}h&*s{wcFZ9bBjlq|p!+H`)7b8XG<*x0Ux3R*&j$ST2%=C7Be8 z#=eVciwLKhLOWU{!{#;%$3v6k`w^jCvMtg}L~^q48s|;#r_6s{is2Rh1eJ(92PDGKOEO&PgDHj9lC7kSixy7 zKDVy89IbfHxNyav*tmd^jzQ^b-CqAcJ8)c_Ye88JBC-O_ThF!GT=eA#26y z^}kyX=Z);Qcza!)geIJR zW+iE-IC!k+)3%IYqU71|l*U$QIT{5k#Kr_CIyuG2zH28PC}+)W-g0zRv2u De~^m0 literal 0 HcmV?d00001 diff --git a/django_messages/locale/ru/LC_MESSAGES/django.po b/django_messages/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 0000000..34b76b6 --- /dev/null +++ b/django_messages/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Michail Sychev m.sychev@axion-rti.ru, 2009 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-11 12:31-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin.py:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 +#: templates/messages/view.html:12 +msgid "Recipient" +msgstr "Получатель" + +#: admin.py:15 +msgid "group" +msgstr "Группа" + +#: admin.py:16 +msgid "Creates the message optionally for all users or a group of users." +msgstr "Создать сообщения опционально для всех пользователей или группы" + +#: admin.py:23 +msgid "All users" +msgstr "Все пользователи" + +#: admin.py:38 models.py:88 +msgid "Message" +msgstr "Сообщение" + +#: admin.py:45 +msgid "Date/time" +msgstr "Дата/Время" + +#: fields.py:53 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "Некорректные имена пользователей: %(users)s" + +#: forms.py:21 models.py:49 templates/messages/inbox.html:7 +#: templates/messages/outbox.html:7 templates/messages/trash.html:7 +#: templates/messages/view.html:6 +msgid "Subject" +msgstr "Тема" + +#: forms.py:22 models.py:50 +msgid "Body" +msgstr "Сообщение" + +#: management.py:9 +msgid "Message Received" +msgstr "Сообщение получено" + +#: management.py:9 +msgid "you have received a message" +msgstr "вы получили сообщение" + +#: management.py:10 +msgid "Message Sent" +msgstr "Сообщение отправлено" + +#: management.py:10 +msgid "you have sent a message" +msgstr "Вы отправили сообщение" + +#: management.py:11 +msgid "Message Replied" +msgstr "Сообщение отвечено" + +#: management.py:11 +msgid "you have replied to a message" +msgstr "вы ответили на сообщение" + +#: management.py:12 +msgid "Reply Received" +msgstr "Ответ получен" + +#: management.py:12 +msgid "you have received a reply to a message" +msgstr "вы получили ответ на сообщение" + +#: management.py:13 +msgid "Message Deleted" +msgstr "Сообщение удалено" + +#: management.py:13 +msgid "you have deleted a message" +msgstr "вы удалили сообщение" + +#: management.py:14 +msgid "Message Recovered" +msgstr "Сообщение восстановлено" + +#: management.py:14 +msgid "you have undeleted a message" +msgstr "вы восстановили сообщение" + +#: models.py:51 templates/messages/inbox.html:7 +#: templates/messages/trash.html:7 templates/messages/view.html:8 +msgid "Sender" +msgstr "Отправитель" + +#: models.py:53 +msgid "Parent message" +msgstr "Родительское сообщение" + +#: models.py:54 +msgid "sent at" +msgstr "отправлено" + +#: models.py:55 +msgid "read at" +msgstr "прочитано" + +#: models.py:56 +msgid "replied at" +msgstr "отвечено" + +#: models.py:57 +msgid "Sender deleted at" +msgstr "Отправитель удалил" + +#: models.py:58 +msgid "Recipient deleted at" +msgstr "Получатель удалил" + +#: models.py:89 +msgid "Messages" +msgstr "Сообщения" + +#: utils.py:27 +#, python-format +msgid "New Message: %(subject)s" +msgstr "Новое сообщение: %(subject)s" + +#: views.py:78 views.py:112 +msgid "Message successfully sent." +msgstr "Сообщение успешно отправлено." + +#: views.py:118 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s написал:\n" +"%(body)s" + +#: views.py:122 +#, python-format +msgid "Re: %(subject)s" +msgstr "Re: %(subject)s" + +#: views.py:158 +msgid "Message successfully deleted." +msgstr "Сообщение успешно удалено." + +#: views.py:185 +msgid "Message successfully recovered." +msgstr "Сообщение успешно восстановлено." + +#: templates/messages/base.html:8 templates/messages/inbox.html:4 +#: templates/messages/new_message.html:10 +msgid "Inbox" +msgstr "Входящие" + +#: templates/messages/base.html:9 templates/messages/outbox.html:4 +msgid "Sent Messages" +msgstr "Исходящие" + +#: templates/messages/base.html:10 +msgid "New Message" +msgstr "Новое сообщение" + +#: templates/messages/base.html:11 +msgid "Trash" +msgstr "Удалённые" + +#: templates/messages/compose.html:4 +msgid "Compose Message" +msgstr "Новое сообщение" + +#: templates/messages/compose.html:9 +msgid "Send" +msgstr "Отправить" + +#: templates/messages/inbox.html:7 +msgid "Received" +msgstr "Получено" + +#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 +#: templates/messages/trash.html:7 +msgid "Action" +msgstr "Действия" + +#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 +#: templates/messages/trash.html:16 templates/messages/view.html:11 +msgid "DATETIME_FORMAT" +msgstr "j. N Y, H:i" + +#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 +msgid "delete" +msgstr "удалить" + +#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 +#: templates/messages/trash.html:24 +msgid "No messages." +msgstr "Сообщений нет." + +#: templates/messages/new_message.html:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"Hallo %(recipient)s,\n" +"\n" +"Вы получили сообщение от %(sender)s\n" +"со следующим содержанием:" + +#: templates/messages/new_message.html:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "Отправлено %(site_url)s" + +#: templates/messages/new_message.html:11 templates/messages/view.html:18 +msgid "Reply" +msgstr "Ответить" + +#: templates/messages/outbox.html:7 +msgid "Sent" +msgstr "Отправлено" + +#: templates/messages/trash.html:4 +msgid "Deleted Messages" +msgstr "Удалённые сообщения" + +#: templates/messages/trash.html:7 templates/messages/view.html:10 +msgid "Date" +msgstr "Дата" + +#: templates/messages/trash.html:17 +msgid "undelete" +msgstr "восстановить" + +#: templates/messages/trash.html:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"Удалённые сообщения очищаются из корзины через произвольные интервалы,не " +"используйте эту возможность как долгосрочное хранилище." + +#: templates/messages/view.html:4 +msgid "View Message" +msgstr "Просмотр сообщений" + +#: templates/messages/view.html:20 +msgid "Delete" +msgstr "Удалить" + +#: templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "Вы удалили сообщение %(message)s." + +#: templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"Вы получили сообщение %(message)s от %" +"(message_sender)s." + +#: templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "Вы восстановили сообщение %(message)s." + +#: templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"Вы ответили на %(message_parent_msg)s от %" +"(message_recipient)s." + +#: templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "%(message_sender)s ответил на %(message_parent_msg)s." + +#: templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"Вы отправили сообщение %(message)s " +"получателям %(message_recipient)s." diff --git a/django_messages/locale/zh_CN/LC_MESSAGES/django.mo b/django_messages/locale/zh_CN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..455e489d265a787c831a836879ea7e4f09789ddd GIT binary patch literal 4469 zcmbuBYitx%8^@1#T@`PyiuWVl=xb*wc*7Mc1=iZo3uz1Q3tn*8J>4DMovAakMZy<~ zQY#90mvRw7P>h0TwA2>FZzd-C$@onZ!_2ldF($_77ft*>bI#1pmTC|uJ^Pz;&U2pg z+|HSPck$`3Fg$moU5)0Q!dM&l-f8&3Gj=*-^TBcOO0f0}#?AyAK@720@B*+y^)qTd z4_=6I3oLMV_yBkw`tN|(fP>(5;MXA8^9y)3 zcmb513r+>6f;WOwz_}plZw5*3LGT<4>>`85DSHG3T-d-kgFL*V)7 z9|kW2zX0*azQ<1;I1ZA&E3p~b&A~=c10MlPU=#Qam<2hEc?et&(tgK4()Rei>pMWQW4Y=-3X=TeAjz#!{Y@arZ2_+Z_kpzjbMOZ6 zE0EUx48m3RJ9sa64i7OX;&BYT z5&T_^Uyq`r`MHYAK%_A^Bb5JB(dZmdOejwD+$0g4WqPeeyHt%4{;S?m3PFuf_f|DV zpt?_@%|yEy4O_Ci(8v#ZW~1GKM)9GTP@R*_bdKn$lL*cS#o!9nC;#X{2-)>$x1imQ zHUn)I8l78uC=VJM`8^$tt{^%K;Zqa7fK=-oZ5kTom7Y5#f^$Nzx1rIUhSVT9(~H7! z^qg4X2s10}8i(g~hoj^2)mDk?+!o!1)!emsMYLPDF~6edn#)VhQqsr?v|jb%d&aFGIN@1 z6a{x&%SHr}?0!)wke{~57~KY3tZ`}+2?_&7gh6}jyxTT)%-324o?|}YD+$m);h;mn{ z0N=Agh_lJbXW^LC{1@|72+@?oTE!|JS|58)A!tr%<)b2lkg>%X#6)Q@10XB9>YguPiqDqdi zO&ysH>di1SmTki)vY)0LEbOG3V@r)#AeNy(@_LVmETQZ}2^}jwN9TE4bj_VsIX-~} z)9Ryv8fVT7y*|kzJ=jxL+es-3y;T-O2fKO$nf2fp{X0{GI;8vI1Uy|4zd6Y1iMGP? z@Z`nJbts1?7mKQUt4g~(7t9tqPPGe4NAMbK2bNG}!SzHpKvjbEFug3AigNb%bJ1-& zsaO=tNoJ*0$8Q{3iK|H^k}b9^I*M9TR$Gdy#TA_5iyIa!YG_RJrRnyLrnc4uPM2l7 zT8oo2vfBJo&e1xp6i+N}>(mw?CUkFWbVaB5th&0pwV8EV-R*qltW+Id@IX*&7d-|k zS8~hJ4eeS>o3^ll-`|#MX}WcJTWdPetUIoTLt{Dx9rtXCH>O+D{C`XMoSZPlD$AOe zE9yoenX!uX5H@oqoEoiD=*1LoZfI>>LPpPNZk|^#l9rvTPqZ|(q$_UCOx7h9$m><> zT-^hPDgjvx6J|FD5gXnV_p=Xw2J>Li=(_`~{PE_o zxBHdDR1sn7yx~4MdIC3n_)U}RrLUFag1apEUo&##gf&vyl+K`BPTnSUu7~?7X2p&} zQbzEf7, 2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-10-04 12:00-0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: GENE WU \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:39 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "以下用户名不正确: %(users)s" + +#: forms.py:23 models.py:53 templates\messages\outbox.html.py:7 +#: templates\messages\view.html.py:12 +msgid "Recipient" +msgstr "收信人" + +#: forms.py:24 models.py:50 templates\messages\inbox.html.py:7 +#: templates\messages\outbox.html.py:7 templates\messages\trash.html.py:7 +#: templates\messages\view.html.py:6 +msgid "Subject" +msgstr "主题" + +#: forms.py:25 models.py:51 +msgid "Body" +msgstr "消息主体" + +#: management.py:10 +msgid "Message Received" +msgstr "收到的消息" + +#: management.py:10 +msgid "you have received a message" +msgstr "你受到了一条消息" + +#: management.py:11 +msgid "Message Sent" +msgstr "消息已发出" + +#: management.py:11 +msgid "you have sent a message" +msgstr "你已发出了一条消息" + +#: management.py:12 +msgid "Message Replied" +msgstr "消息已回复" + +#: management.py:12 +msgid "you have replied to a message" +msgstr "你已回复了一条消息" + +#: management.py:13 +msgid "Reply Received" +msgstr "回复已收到" + +#: management.py:13 +msgid "you have received a reply to a message" +msgstr "你已收到了消息的一条回复" + +#: management.py:14 +msgid "Message Deleted" +msgstr "消息已删除" + +#: management.py:14 +msgid "you have deleted a message" +msgstr "你已删除了一条消息" + +#: management.py:15 +msgid "Message Recovered" +msgstr "消息已恢复" + +#: management.py:15 +msgid "you have undelete a message" +msgstr "你已恢复了一条消息" + +#: models.py:52 templates\messages\inbox.html.py:7 +#: templates\messages\trash.html.py:7 templates\messages\view.html.py:8 +msgid "Sender" +msgstr "发信人" + +#: models.py:54 +msgid "Parent message" +msgstr "原消息" + +#: models.py:55 +msgid "sent at" +msgstr "发送于" + +#: models.py:56 +msgid "read at" +msgstr "阅读于" + +#: models.py:57 +msgid "replied at" +msgstr "回复于" + +#: models.py:58 +msgid "Sender deleted at" +msgstr "发信人删除于" + +#: models.py:59 +msgid "Recipient deleted at" +msgstr "收件人删除于" + +#: models.py:89 +msgid "Message" +msgstr "消息" + +#: models.py:90 +msgid "Messages" +msgstr "消息" + +#: utils.py:29 +#, python-format +msgid "New Message: %(subject)s" +msgstr "新消息: %(subject)s" + +#: views.py:80 views.py:108 +msgid "Message successfully sent." +msgstr "消息已成功发送。" + +#: views.py:114 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" +"%(sender)s 写道:\n" +"%(body)s" + +#: views.py:118 +#, python-format +msgid "Re: %(subject)s" +msgstr "回复: %(subject)s" + +#: views.py:154 +msgid "Message successfully deleted." +msgstr "消息已成功删除。" + +#: views.py:181 +msgid "Message successfully recovered." +msgstr "消息已成功恢复。" + +#: templates\messages\base.html.py:8 templates\messages\inbox.html.py:4 +#: templates\messages\new_message.html.py:10 +msgid "Inbox" +msgstr "收件箱" + +#: templates\messages\base.html.py:9 templates\messages\outbox.html.py:4 +msgid "Sent Messages" +msgstr "发送的消息" + +#: templates\messages\base.html.py:10 +msgid "New Message" +msgstr "新消息" + +#: templates\messages\base.html.py:11 +msgid "Trash" +msgstr "回收站" + +#: templates\messages\compose.html.py:4 +msgid "Compose Message" +msgstr "撰写消息" + +#: templates\messages\compose.html.py:9 +msgid "Send" +msgstr "发送" + +#: templates\messages\inbox.html.py:7 +msgid "Received" +msgstr "受到于" + +#: templates\messages\inbox.html.py:7 templates\messages\outbox.html.py:7 +#: templates\messages\trash.html.py:7 +msgid "Action" +msgstr "动作" + +#: templates\messages\inbox.html.py:19 +#: templates\messages\outbox.html.py:16 +#: templates\messages\trash.html.py:16 templates\messages\view.html.py:11 +msgid "DATETIME_FORMAT" +msgstr "" + +#: templates\messages\inbox.html.py:20 +#: templates\messages\outbox.html.py:17 +msgid "delete" +msgstr "删除" + +#: templates\messages\new_message.html.py:1 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" +"%(recipient)s:\n" +"\n" +"你受到一条从%(sender)s发出的私人信息有\n" +"以下内容:" + +#: templates\messages\new_message.html.py:9 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "消息已从%(site_url)s发出" + +#: templates\messages\new_message.html.py:11 +#: templates\messages\view.html.py:18 +msgid "Reply" +msgstr "回复" + +#: templates\messages\outbox.html.py:7 +msgid "Sent" +msgstr "已发出" + +#: templates\messages\trash.html.py:4 +msgid "Deleted Messages" +msgstr "删除的消息" + +#: templates\messages\trash.html.py:7 templates\messages\view.html.py:10 +msgid "Date" +msgstr "日期" + +#: templates\messages\trash.html.py:17 +msgid "undelete" +msgstr "恢复" + +#: templates\messages\trash.html.py:23 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" +"删除的消息将定期删除,不要依赖此功能作为长期存储。" +"" + +#: templates\messages\view.html.py:4 +msgid "View Message" +msgstr "浏览消息" + +#: templates\messages\view.html.py:20 +msgid "Delete" +msgstr "删除" + +#: templates\notification\messages_deleted\notice.html.py:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "你已删除了消息%(message)s." + +#: templates\notification\messages_received\notice.html.py:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" +"你已收到%(message_sender)s的消息%(message)s。" +"" + +#: templates\notification\messages_recovered\notice.html.py:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "你已恢复了消息%(message)s." + +#: templates\notification\messages_replied\notice.html.py:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" +"你已回复了%(message_recipient)s.发出的消息%(message_parent_msg)s" +"" + +#: templates\notification\messages_reply_received\notice.html.py:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" +"%(message_sender)s已回复你发出的消息:%(message_parent_msg)s." + +#: templates\notification\messages_sent\notice.html.py:2 +#, python-format +msgid "" +"You have sent the message %(message)s to %" +"(message_recipient)s." +msgstr "" +"你已发送消息%(message)s到%" +"(message_recipient)s." diff --git a/django_messages/management.py b/django_messages/management.py new file mode 100644 index 0000000..2172a0f --- /dev/null +++ b/django_messages/management.py @@ -0,0 +1,18 @@ +from django.db.models import signals +from django.conf import settings +from django.utils.translation import ugettext_noop as _ + +if "notification" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): + from notification import models as notification + + def create_notice_types(app, created_models, verbosity, **kwargs): + notification.create_notice_type("messages_received", _("Message Received"), _("you have received a message"), default=2) + notification.create_notice_type("messages_sent", _("Message Sent"), _("you have sent a message"), default=1) + notification.create_notice_type("messages_replied", _("Message Replied"), _("you have replied to a message"), default=1) + notification.create_notice_type("messages_reply_received", _("Reply Received"), _("you have received a reply to a message"), default=2) + notification.create_notice_type("messages_deleted", _("Message Deleted"), _("you have deleted a message"), default=1) + notification.create_notice_type("messages_recovered", _("Message Recovered"), _("you have undeleted a message"), default=1) + + signals.post_syncdb.connect(create_notice_types, sender=notification) +else: + print("Skipping creation of NoticeTypes as notification app not found") diff --git a/privatemessage/__init__.py b/django_messages/management/__init__.py similarity index 100% rename from privatemessage/__init__.py rename to django_messages/management/__init__.py diff --git a/privatemessage/migrations/__init__.py b/django_messages/management/commands/__init__.py similarity index 100% rename from privatemessage/migrations/__init__.py rename to django_messages/management/commands/__init__.py diff --git a/django_messages/management/commands/delete_deleted_messages.py b/django_messages/management/commands/delete_deleted_messages.py new file mode 100644 index 0000000..e79483d --- /dev/null +++ b/django_messages/management/commands/delete_deleted_messages.py @@ -0,0 +1,32 @@ +import datetime +from django.core.management.base import BaseCommand, CommandError +from django.utils import timezone +from ...models import Message + + +class Command(BaseCommand): + args = '' + help = ( + 'Deletes messages that have been marked as deleted by both the sender ' + 'and recipient. You must provide the minimum age in days.' + ) + + def handle(self, *args, **options): + if len(args) == 0: + raise CommandError('You must provide the minimum age in days.') + elif len(args) > 1: + raise CommandError( + 'This management command accepts only one argument.' + ) + + try: + age_in_days = int(args[0]) + except ValueError: + raise CommandError('"%s" is not an integer.' % args[0]) + + the_date = timezone.now() - datetime.timedelta(days=age_in_days) + + Message.objects.filter( + recipient_deleted_at__lte=the_date, + sender_deleted_at__lte=the_date, + ).delete() diff --git a/django_messages/migrations/0001_initial.py b/django_messages/migrations/0001_initial.py new file mode 100644 index 0000000..0d7e96e --- /dev/null +++ b/django_messages/migrations/0001_initial.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Message', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('subject', models.CharField(max_length=120, verbose_name='Subject')), + ('body', models.TextField(verbose_name='Body')), + ('sent_at', models.DateTimeField(null=True, verbose_name='sent at', blank=True)), + ('read_at', models.DateTimeField(null=True, verbose_name='read at', blank=True)), + ('replied_at', models.DateTimeField(null=True, verbose_name='replied at', blank=True)), + ('sender_deleted_at', models.DateTimeField(null=True, verbose_name='Sender deleted at', blank=True)), + ('recipient_deleted_at', models.DateTimeField(null=True, verbose_name='Recipient deleted at', blank=True)), + ('parent_msg', models.ForeignKey(related_name='next_messages', verbose_name='Parent message', blank=True, to='django_messages.Message', null=True)), + ('recipient', models.ForeignKey(related_name='received_messages', verbose_name='Recipient', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ('sender', models.ForeignKey(related_name='sent_messages', verbose_name='Sender', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ['-sent_at'], + 'verbose_name': 'Message', + 'verbose_name_plural': 'Messages', + }, + bases=(models.Model,), + ), + ] diff --git a/django_messages/migrations/0002_auto_20160607_0852.py b/django_messages/migrations/0002_auto_20160607_0852.py new file mode 100644 index 0000000..ce46289 --- /dev/null +++ b/django_messages/migrations/0002_auto_20160607_0852.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('django_messages', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='message', + name='subject', + field=models.CharField(max_length=140, verbose_name='Subject'), + preserve_default=True, + ), + ] diff --git a/django_messages/migrations/__init__.py b/django_messages/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django_messages/models.py b/django_messages/models.py new file mode 100644 index 0000000..b2f0ae6 --- /dev/null +++ b/django_messages/models.py @@ -0,0 +1,105 @@ +from django.conf import settings +from django.db import models +from django.utils import timezone +from django.utils.encoding import python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ + + +AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User') + + +class MessageManager(models.Manager): + + def inbox_for(self, user): + """ + Returns all messages that were received by the given user and are not + marked as deleted. + """ + return self.filter( + recipient=user, + recipient_deleted_at__isnull=True, + ) + + def outbox_for(self, user): + """ + Returns all messages that were sent by the given user and are not + marked as deleted. + """ + return self.filter( + sender=user, + sender_deleted_at__isnull=True, + ) + + def trash_for(self, user): + """ + Returns all messages that were either received or sent by the given + user and are marked as deleted. + """ + return self.filter( + recipient=user, + recipient_deleted_at__isnull=False, + ) | self.filter( + sender=user, + sender_deleted_at__isnull=False, + ) + + +@python_2_unicode_compatible +class Message(models.Model): + """ + A private message from user to user + """ + subject = models.CharField(_("Subject"), max_length=140) + body = models.TextField(_("Body")) + sender = models.ForeignKey(AUTH_USER_MODEL, related_name='sent_messages', verbose_name=_("Sender")) + recipient = models.ForeignKey(AUTH_USER_MODEL, related_name='received_messages', null=True, blank=True, verbose_name=_("Recipient")) + parent_msg = models.ForeignKey('self', related_name='next_messages', null=True, blank=True, verbose_name=_("Parent message")) + sent_at = models.DateTimeField(_("sent at"), null=True, blank=True) + read_at = models.DateTimeField(_("read at"), null=True, blank=True) + replied_at = models.DateTimeField(_("replied at"), null=True, blank=True) + sender_deleted_at = models.DateTimeField(_("Sender deleted at"), null=True, blank=True) + recipient_deleted_at = models.DateTimeField(_("Recipient deleted at"), null=True, blank=True) + + objects = MessageManager() + + def new(self): + """returns whether the recipient has read the message or not""" + if self.read_at is not None: + return False + return True + + def replied(self): + """returns whether the recipient has written a reply to this message""" + if self.replied_at is not None: + return True + return False + + def __str__(self): + return self.subject + + def get_absolute_url(self): + return 'django_messages:messages_detail', [self.id] + get_absolute_url = models.permalink(get_absolute_url) + + def save(self, **kwargs): + if not self.id: + self.sent_at = timezone.now() + super(Message, self).save(**kwargs) + + class Meta: + ordering = ['-sent_at'] + verbose_name = _("Message") + verbose_name_plural = _("Messages") + + +def inbox_count_for(user): + """ + returns the number of unread messages for the given user but does not + mark them seen + """ + return Message.objects.filter(recipient=user, read_at__isnull=True, recipient_deleted_at__isnull=True).count() + +# fallback for email notification if django-notification could not be found +#if "notification" not in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): +# from django_messages.utils import new_message_email +# signals.post_save.connect(new_message_email, sender=Message) diff --git a/django_messages/signals.py b/django_messages/signals.py new file mode 100644 index 0000000..e69de29 diff --git a/django_messages/templates/base.html b/django_messages/templates/base.html new file mode 100644 index 0000000..06a5dba --- /dev/null +++ b/django_messages/templates/base.html @@ -0,0 +1,11 @@ + + + + + + +{% block content %} + +{% endblock %} + + diff --git a/django_messages/templates/django_messages/compose.html b/django_messages/templates/django_messages/compose.html new file mode 100644 index 0000000..14d2fbd --- /dev/null +++ b/django_messages/templates/django_messages/compose.html @@ -0,0 +1,53 @@ +{% extends request.is_ajax|yesno:'nullcont.htm,django_messages/ext.htm' %} +{% load i18n %} + +{% block content %} + +
+
+

{% trans "Compose Message"%}

+
+
+
{% csrf_token %} + +
+ + +
+ + {{ form.recipient }}{{ form.recipient.errors }} +
+
+ +
+ + +
+ + {{ form.subject }}{{ form.subject.errors }} +
+
+ +
+ + +
+ + {{ form.body }}{{ form.body.errors }} +
+
+ +
+ + +
+ +
+
+
+ +{% endblock %} diff --git a/django_messages/templates/django_messages/ext.htm b/django_messages/templates/django_messages/ext.htm new file mode 100644 index 0000000..1b7e5f4 --- /dev/null +++ b/django_messages/templates/django_messages/ext.htm @@ -0,0 +1,43 @@ +{% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} + +{% block main %} + + + + {% include 'message_block.html' %} + + + +
+
+ {% block content %}{% endblock %} +
+
+ +{% endblock %} \ No newline at end of file diff --git a/django_messages/templates/django_messages/inbox.html b/django_messages/templates/django_messages/inbox.html new file mode 100644 index 0000000..c276578 --- /dev/null +++ b/django_messages/templates/django_messages/inbox.html @@ -0,0 +1,30 @@ +{% extends "django_messages/base.html" %} +{% load i18n %} + +{% block content %} +

{% trans "Inbox" %}

+{% if message_list %} + + + + + +{% for message in message_list %} + + + + + + +{% endfor %} + +
{% trans "Sender" %}{% trans "Subject" %}{% trans "Received" %}{% trans "Action" %}
{{ message.sender }} + {% if message.new %}{% endif %} + {% if message.replied %}{% endif %} + {{ message.subject }} + {% if message.replied %}{% endif %} + {% if message.new %}{% endif %}{{ message.sent_at|date:_("DATETIME_FORMAT") }}{% trans "delete" %}
+{% else %} +

{% trans "No messages." %}

+{% endif %} +{% endblock %} \ No newline at end of file diff --git a/django_messages/templates/django_messages/new_message.html b/django_messages/templates/django_messages/new_message.html new file mode 100644 index 0000000..286fdbf --- /dev/null +++ b/django_messages/templates/django_messages/new_message.html @@ -0,0 +1,13 @@ +{% load i18n %} + +{% blocktrans with recipient=message.recipient sender=message.sender %}Hello {{ recipient }}, + +you received a private message from {{ sender }} with +the following contents:{% endblocktrans %} + +{{ message.body|safe }} + +-- +{% blocktrans %}Sent from {{ site_url }}{% endblocktrans %} +{% trans "Inbox" %}: {{ site_url }}{% url 'django_messages:messages_inbox' %} +{% trans "Reply" %}: {{ site_url }}{% url 'django_messages:messages_reply' message.pk %} \ No newline at end of file diff --git a/django_messages/templates/django_messages/outbox.html b/django_messages/templates/django_messages/outbox.html new file mode 100644 index 0000000..8edf7d6 --- /dev/null +++ b/django_messages/templates/django_messages/outbox.html @@ -0,0 +1,27 @@ +{% extends "django_messages/base.html" %} +{% load i18n %} + +{% block content %} +

{% trans "Sent Messages" %}

+{% if message_list %} + + + + + +{% for message in message_list %} + + + + + + +{% endfor %} + +
{% trans "Recipient" %}{% trans "Subject" %}{% trans "Sent" %}{% trans "Action" %}
{{ message.recipient }} + {{ message.subject }} + {{ message.sent_at|date:_("DATETIME_FORMAT") }}{% trans "delete" %}
+{% else %} +

{% trans "No messages." %}

+{% endif %} +{% endblock %} \ No newline at end of file diff --git a/django_messages/templates/django_messages/trash.html b/django_messages/templates/django_messages/trash.html new file mode 100644 index 0000000..92f6d34 --- /dev/null +++ b/django_messages/templates/django_messages/trash.html @@ -0,0 +1,29 @@ +{% extends "django_messages/base.html" %} +{% load i18n %} + +{% block content %} +

{% trans "Deleted Messages" %}

+{% if message_list %} + + + + + +{% for message in message_list %} + + + + + + +{% endfor %} + +
{% trans "Sender" %}{% trans "Subject" %}{% trans "Date" %}{% trans "Action" %}
{{ message.sender }} + {{ message.subject }} + {{ message.sent_at|date:_("DATETIME_FORMAT") }}{% trans "undelete" %}
+{% else %} +

{% trans "No messages." %}

+{% endif %} +
+

{% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %}

+{% endblock %} \ No newline at end of file diff --git a/django_messages/templates/django_messages/view.html b/django_messages/templates/django_messages/view.html new file mode 100644 index 0000000..967565a --- /dev/null +++ b/django_messages/templates/django_messages/view.html @@ -0,0 +1,35 @@ +{% extends "django_messages/base.html" %} +{% load i18n %} + +{% block content %} +

{% trans "View Message" %}

+
+
{% trans "Subject" %}
+
{{ message.subject }}
+
{% trans "Sender" %}
+
{{ message.sender }}
+
{% trans "Date" %}
+
{{ message.sent_at|date:_("DATETIME_FORMAT")}}
+
{% trans "Recipient" %}
+
{{ message.recipient }}
+
+{{ message.body|linebreaksbr }}

+ +{% ifequal message.recipient.pk user.pk %} +{% trans "Reply" %} +{% endifequal %} +{% trans "Delete" %} + +{% comment %}Example reply_form integration +{% if reply_form %} +

{% trans "Compose reply"%}

+
+{% csrf_token %} + +{{ reply_form.as_table }} +
+ +
+{% endif %} +{% endcomment %} +{% endblock %} \ No newline at end of file diff --git a/django_messages/templates/notification/messages_deleted/notice.html b/django_messages/templates/notification/messages_deleted/notice.html new file mode 100644 index 0000000..c4c074d --- /dev/null +++ b/django_messages/templates/notification/messages_deleted/notice.html @@ -0,0 +1 @@ +{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have deleted the message {{ message }}.{% endblocktrans %} diff --git a/django_messages/templates/notification/messages_received/notice.html b/django_messages/templates/notification/messages_received/notice.html new file mode 100644 index 0000000..f8323d7 --- /dev/null +++ b/django_messages/templates/notification/messages_received/notice.html @@ -0,0 +1,2 @@ +{% load i18n %} +{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender %}You have received the message {{ message }} from {{ message_sender }}.{% endblocktrans %} diff --git a/django_messages/templates/notification/messages_recovered/notice.html b/django_messages/templates/notification/messages_recovered/notice.html new file mode 100644 index 0000000..421a712 --- /dev/null +++ b/django_messages/templates/notification/messages_recovered/notice.html @@ -0,0 +1 @@ +{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have recovered the message {{ message }}.{% endblocktrans %} diff --git a/django_messages/templates/notification/messages_replied/notice.html b/django_messages/templates/notification/messages_replied/notice.html new file mode 100644 index 0000000..386f125 --- /dev/null +++ b/django_messages/templates/notification/messages_replied/notice.html @@ -0,0 +1,2 @@ +{% load i18n %} +{% blocktrans with message.parent_msg.get_absolute_url as message_url and message.parent_msg as message_parent_msg and message.recipient as message_recipient %}You have replied to {{ message_parent_msg }} from {{ message_recipient }}.{% endblocktrans %} diff --git a/django_messages/templates/notification/messages_reply_received/notice.html b/django_messages/templates/notification/messages_reply_received/notice.html new file mode 100644 index 0000000..b1c62b6 --- /dev/null +++ b/django_messages/templates/notification/messages_reply_received/notice.html @@ -0,0 +1,2 @@ +{% load i18n %} +{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender and message.parent_msg as message_parent_msg %}{{ message_sender }} has sent you a reply to {{ message_parent_msg }}.{% endblocktrans %} diff --git a/django_messages/templates/notification/messages_sent/notice.html b/django_messages/templates/notification/messages_sent/notice.html new file mode 100644 index 0000000..d30ba14 --- /dev/null +++ b/django_messages/templates/notification/messages_sent/notice.html @@ -0,0 +1,2 @@ +{% load i18n %} +{% blocktrans with message.get_absolute_url as message_url and message.recipient as message_recipient %}You have sent the message {{ message }} to {{ message_recipient }}.{% endblocktrans %} diff --git a/django_messages/templatetags/__init__.py b/django_messages/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django_messages/templatetags/inbox.py b/django_messages/templatetags/inbox.py new file mode 100644 index 0000000..9b65e34 --- /dev/null +++ b/django_messages/templatetags/inbox.py @@ -0,0 +1,45 @@ +from django.template import Library, Node, TemplateSyntaxError + +class InboxOutput(Node): + def __init__(self, varname=None): + self.varname = varname + + def render(self, context): + try: + user = context['user'] + count = user.received_messages.filter(read_at__isnull=True, recipient_deleted_at__isnull=True).count() + except (KeyError, AttributeError): + count = '' + if self.varname is not None: + context[self.varname] = count + return "" + else: + return "%s" % (count) + +def do_print_inbox_count(parser, token): + """ + A templatetag to show the unread-count for a logged in user. + Returns the number of unread messages in the user's inbox. + Usage:: + + {% load inbox %} + {% inbox_count %} + + {# or assign the value to a variable: #} + + {% inbox_count as my_var %} + {{ my_var }} + + """ + bits = token.contents.split() + if len(bits) > 1: + if len(bits) != 3: + raise TemplateSyntaxError("inbox_count tag takes either no arguments or exactly two arguments") + if bits[1] != 'as': + raise TemplateSyntaxError("first argument to inbox_count tag must be 'as'") + return InboxOutput(bits[2]) + else: + return InboxOutput() + +register = Library() +register.tag('inbox_count', do_print_inbox_count) diff --git a/django_messages/tests.py b/django_messages/tests.py new file mode 100644 index 0000000..1f63722 --- /dev/null +++ b/django_messages/tests.py @@ -0,0 +1,178 @@ +from django.test import TestCase +from django.test.client import Client +from django.core.urlresolvers import reverse +from django.utils import timezone +from django_messages.models import Message +from django_messages.utils import format_subject, format_quote + +from .utils import get_user_model + +User = get_user_model() + + +class SendTestCase(TestCase): + def setUp(self): + self.user1 = User.objects.create_user( + 'user1', 'user1@example.com', '123456') + self.user2 = User.objects.create_user( + 'user2', 'user2@example.com', '123456') + self.msg1 = Message(sender=self.user1, recipient=self.user2, + subject='Subject Text', body='Body Text') + self.msg1.save() + + def testBasic(self): + self.assertEqual(self.msg1.sender, self.user1) + self.assertEqual(self.msg1.recipient, self.user2) + self.assertEqual(self.msg1.subject, 'Subject Text') + self.assertEqual(self.msg1.body, 'Body Text') + self.assertEqual(self.user1.sent_messages.count(), 1) + self.assertEqual(self.user1.received_messages.count(), 0) + self.assertEqual(self.user2.received_messages.count(), 1) + self.assertEqual(self.user2.sent_messages.count(), 0) + + +class DeleteTestCase(TestCase): + def setUp(self): + self.user1 = User.objects.create_user( + 'user3', 'user3@example.com', '123456') + self.user2 = User.objects.create_user( + 'user4', 'user4@example.com', '123456') + self.msg1 = Message(sender=self.user1, recipient=self.user2, + subject='Subject Text 1', body='Body Text 1') + self.msg2 = Message(sender=self.user1, recipient=self.user2, + subject='Subject Text 2', body='Body Text 2') + self.msg1.sender_deleted_at = timezone.now() + self.msg2.recipient_deleted_at = timezone.now() + self.msg1.save() + self.msg2.save() + + def testBasic(self): + self.assertEqual(Message.objects.outbox_for(self.user1).count(), 1) + self.assertEqual( + Message.objects.outbox_for(self.user1)[0].subject, + 'Subject Text 2' + ) + self.assertEqual(Message.objects.inbox_for(self.user2).count(), 1) + self.assertEqual( + Message.objects.inbox_for(self.user2)[0].subject, + 'Subject Text 1' + ) + #undelete + self.msg1.sender_deleted_at = None + self.msg2.recipient_deleted_at = None + self.msg1.save() + self.msg2.save() + self.assertEqual(Message.objects.outbox_for(self.user1).count(), 2) + self.assertEqual(Message.objects.inbox_for(self.user2).count(), 2) + + +class IntegrationTestCase(TestCase): + """ + Test the app from a user perpective using Django's Test-Client. + """ + + T_USER_DATA = [{'username': 'user_1', 'password': '123456', + 'email': 'user_1@example.com'}, + {'username': 'user_2', 'password': '123456', + 'email': 'user_2@example.com'}] + T_MESSAGE_DATA = [{'subject': 'Test Subject 1', + 'body': 'Lorem ipsum\ndolor sit amet\n\nconsectur.'}] + + def setUp(self): + """ create 2 users and a test-client logged in as user_1 """ + self.user_1 = User.objects.create_user(**self.T_USER_DATA[0]) + self.user_2 = User.objects.create_user(**self.T_USER_DATA[1]) + self.c = Client() + self.c.login(username=self.T_USER_DATA[0]['username'], + password=self.T_USER_DATA[0]['password']) + + def testInboxEmpty(self): + """ request the empty inbox """ + response = self.c.get(reverse('django_messages:messages_inbox')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/inbox.html') + self.assertEqual(len(response.context['message_list']), 0) + + def testOutboxEmpty(self): + """ request the empty outbox """ + response = self.c.get(reverse('django_messages:messages_outbox')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/outbox.html') + self.assertEqual(len(response.context['message_list']), 0) + + def testTrashEmpty(self): + """ request the empty trash """ + response = self.c.get(reverse('django_messages:messages_trash')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/trash.html') + self.assertEqual(len(response.context['message_list']), 0) + + def testCompose(self): + """ compose a message step by step """ + response = self.c.get(reverse('django_messages:messages_compose')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/compose.html') + response = self.c.post( + reverse('django_messages:messages_compose'), + { + 'recipient': self.T_USER_DATA[1]['username'], + 'subject': self.T_MESSAGE_DATA[0]['subject'], + 'body': self.T_MESSAGE_DATA[0]['body'] + }) + # successfull sending should redirect to inbox + self.assertEqual(response.status_code, 302) + if 'http' in response['Location']: + self.assertEqual(response['Location'], + "http://testserver%s" % reverse('django_messages:messages_inbox')) + else: + self.assertEqual(response['Location'], reverse('django_messages:messages_inbox')) + + # make sure the message exists in the outbox after sending + response = self.c.get(reverse('django_messages:messages_outbox')) + self.assertEqual(len(response.context['message_list']), 1) + + def testReply(self): + """ test that user_2 can reply """ + # create a message for this test + Message.objects.create(sender=self.user_1, + recipient=self.user_2, + subject=self.T_MESSAGE_DATA[0]['subject'], + body=self.T_MESSAGE_DATA[0]['body']) + # log the user_2 in and check the inbox + self.c.login(username=self.T_USER_DATA[1]['username'], + password=self.T_USER_DATA[1]['password']) + response = self.c.get(reverse('django_messages:messages_inbox')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/inbox.html') + self.assertEqual(len(response.context['message_list']), 1) + pk = getattr(response.context['message_list'][0], 'pk') + # reply to the first message + response = self.c.get(reverse('django_messages:messages_reply', + kwargs={'message_id': pk})) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.templates[0].name, + 'django_messages/compose.html') + self.assertEqual( + response.context['form'].initial['body'], + format_quote(self.user_1, self.T_MESSAGE_DATA[0]['body']) + ) + self.assertEqual( + response.context['form'].initial['subject'], + u"Re: %(subject)s" % {'subject': self.T_MESSAGE_DATA[0]['subject']} + ) + + +class FormatTestCase(TestCase): + """ some tests for helper functions """ + def testSubject(self): + """ test that reply counting works as expected """ + self.assertEqual(format_subject(u"foo bar"), u"Re: foo bar") + self.assertEqual(format_subject(u"Re: foo bar"), u"Re[2]: foo bar") + self.assertEqual(format_subject(u"Re[2]: foo bar"), u"Re[3]: foo bar") + self.assertEqual(format_subject(u"Re[10]: foo bar"), + u"Re[11]: foo bar") diff --git a/django_messages/urls.py b/django_messages/urls.py new file mode 100644 index 0000000..f08522e --- /dev/null +++ b/django_messages/urls.py @@ -0,0 +1,16 @@ +from django.conf.urls import url +from django.views.generic import RedirectView + +from django_messages.views import * + +urlpatterns = [ + url(r'^$', inbox, name='messages_inbox'), + url(r'^outbox/$', outbox, name='messages_outbox'), + url(r'^compose/$', compose, name='messages_compose'), + url(r'^compose/(?P[\w.@+-]+)/$', compose, name='messages_compose_to'), + url(r'^reply/(?P[\d]+)/$', reply, name='messages_reply'), + url(r'^view/(?P[\d]+)/$', view, name='messages_detail'), + url(r'^delete/(?P[\d]+)/$', delete, name='messages_delete'), + url(r'^undelete/(?P[\d]+)/$', undelete, name='messages_undelete'), + url(r'^trash/$', trash, name='messages_trash'), +] diff --git a/django_messages/utils.py b/django_messages/utils.py new file mode 100644 index 0000000..a2a1b8b --- /dev/null +++ b/django_messages/utils.py @@ -0,0 +1,99 @@ +import re +import django +from django.utils.text import wrap +from django.utils.translation import ugettext, ugettext_lazy as _ +from django.template.loader import render_to_string +from django.conf import settings +from django.core.mail import send_mail + + +def format_quote(sender, body): + """ + Wraps text at 55 chars and prepends each + line with `> `. + Used for quoting messages in replies. + """ + lines = wrap(body, 55).split('\n') + for i, line in enumerate(lines): + lines[i] = "> %s" % line + quote = '\n'.join(lines) + return ugettext(u"%(sender)s wrote:\n%(body)s") % { + 'sender': sender, + 'body': quote + } + + +def format_subject(subject): + """ + Prepends 'Re:' to the subject. To avoid multiple 'Re:'s + a counter is added. + NOTE: Currently unused. First step to fix Issue #48. + FIXME: Any hints how to make this i18n aware are very welcome. + + """ + subject_prefix_re = r'^Re\[(\d*)\]:\ ' + m = re.match(subject_prefix_re, subject, re.U) + prefix = u"" + if subject.startswith('Re: '): + prefix = u"[2]" + subject = subject[4:] + elif m is not None: + try: + num = int(m.group(1)) + prefix = u"[%d]" % (num+1) + subject = subject[6+len(str(num)):] + except: + # if anything fails here, fall back to the old mechanism + pass + + return ugettext(u"Re%(prefix)s: %(subject)s") % { + 'subject': subject, + 'prefix': prefix + } + + +def new_message_email(sender, instance, signal, + subject_prefix=_(u'New Message: %(subject)s'), + template_name="django_messages/new_message.html", + default_protocol=None, + *args, **kwargs): + """ + This function sends an email and is called via Django's signal framework. + Optional arguments: + ``template_name``: the template to use + ``subject_prefix``: prefix for the email subject. + ``default_protocol``: default protocol in site URL passed to template + """ + if default_protocol is None: + default_protocol = getattr(settings, 'DEFAULT_HTTP_PROTOCOL', 'http') + + if 'created' in kwargs and kwargs['created']: + try: + current_domain = getattr(settings, 'DEFAULT_DOMAIN_NAME', 'example.com') + subject = subject_prefix % {'subject': instance.subject} + message = render_to_string(template_name, { + 'site_url': '%s://%s' % (default_protocol, current_domain), + 'message': instance, + }) + if instance.recipient.email != "": + send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, + [instance.recipient.email,]) + except Exception as e: + #print e + pass #fail silently + + +def get_user_model(): + if django.VERSION[:2] >= (1, 5): + from django.contrib.auth import get_user_model + return get_user_model() + else: + from django.contrib.auth.models import User + return User + + +def get_username_field(): + if django.VERSION[:2] >= (1, 5): + return get_user_model().USERNAME_FIELD + else: + return 'username' diff --git a/django_messages/views.py b/django_messages/views.py new file mode 100644 index 0000000..6c7f556 --- /dev/null +++ b/django_messages/views.py @@ -0,0 +1,231 @@ +from django.http import Http404, HttpResponseRedirect +from django.shortcuts import render, get_object_or_404 +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.utils.translation import ugettext as _ +from django.utils import timezone +from django.core.urlresolvers import reverse +from django.conf import settings + +from django_messages.models import Message +from django_messages.forms import ComposeForm +from django_messages.utils import format_quote, get_user_model, get_username_field + + +User = get_user_model() + +if "notification" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): + from notification import models as notification +else: + notification = None + + +@login_required +def inbox(request, template_name='django_messages/inbox.html'): + """ + Displays a list of received messages for the current user. + Optional Arguments: + ``template_name``: name of the template to use. + """ + message_list = Message.objects.inbox_for(request.user) + return render(request, template_name, { + 'message_list': message_list, + }) + + +@login_required +def outbox(request, template_name='django_messages/outbox.html'): + """ + Displays a list of sent messages by the current user. + Optional arguments: + ``template_name``: name of the template to use. + """ + message_list = Message.objects.outbox_for(request.user) + return render(request, template_name, { + 'message_list': message_list, + }) + + +@login_required +def trash(request, template_name='django_messages/trash.html'): + """ + Displays a list of deleted messages. + Optional arguments: + ``template_name``: name of the template to use + Hint: A Cron-Job could periodicly clean up old messages, which are deleted + by sender and recipient. + """ + message_list = Message.objects.trash_for(request.user) + return render(request, template_name, { + 'message_list': message_list, + }) + + +@login_required +def compose(request, recipient=None, form_class=ComposeForm, + template_name='django_messages/compose.html', success_url=None, recipient_filter=None): + """ + Displays and handles the ``form_class`` form to compose new messages. + Required Arguments: None + Optional Arguments: + ``recipient``: username of a `django.contrib.auth` User, who should + receive the message, optionally multiple usernames + could be separated by a '+' + ``form_class``: the form-class to use + ``template_name``: the template to use + ``success_url``: where to redirect after successfull submission + """ + a = request.GET.get('a') + if request.method == "POST": + form = form_class(request.POST, recipient_filter=recipient_filter) + if form.is_valid(): + form.save(sender=request.user) + messages.info(request, _(u"Message successfully sent.")) + if success_url is None: + success_url = reverse('django_messages:messages_inbox') + if 'next' in request.GET: + success_url = request.GET['next'] + return HttpResponseRedirect(success_url) + else: + form = form_class(initial={'recipient': User.objects.filter(pk=a) }) + if recipient is not None: + recipients = [u for u in User.objects.filter(**{'%s__in' % get_username_field(): [r.strip() for r in recipient.split('+')]})] + form.fields['recipient'].initial = recipients + return render(request, template_name, { + 'form': form, + }) + + +@login_required +def reply(request, message_id, form_class=ComposeForm, + template_name='django_messages/compose.html', success_url=None, + recipient_filter=None, quote_helper=format_quote, + subject_template=_(u"Re: %(subject)s"),): + """ + Prepares the ``form_class`` form for writing a reply to a given message + (specified via ``message_id``). Uses the ``format_quote`` helper from + ``messages.utils`` to pre-format the quote. To change the quote format + assign a different ``quote_helper`` kwarg in your url-conf. + + """ + parent = get_object_or_404(Message, id=message_id) + + if parent.sender != request.user and parent.recipient != request.user: + raise Http404 + + if request.method == "POST": + sender = request.user + form = form_class(request.POST, recipient_filter=recipient_filter) + if form.is_valid(): + form.save(sender=request.user, parent_msg=parent) + messages.info(request, _(u"Message successfully sent.")) + if success_url is None: + success_url = reverse('django_messages:messages_inbox') + return HttpResponseRedirect(success_url) + else: + form = form_class(initial={ + 'body': quote_helper(parent.sender, parent.body), + 'subject': subject_template % {'subject': parent.subject}, + 'recipient': [parent.sender,] + }) + return render(request, template_name, { + 'form': form, + }) + + +@login_required +def delete(request, message_id, success_url=None): + """ + Marks a message as deleted by sender or recipient. The message is not + really removed from the database, because two users must delete a message + before it's save to remove it completely. + A cron-job should prune the database and remove old messages which are + deleted by both users. + As a side effect, this makes it easy to implement a trash with undelete. + + You can pass ?next=/foo/bar/ via the url to redirect the user to a different + page (e.g. `/foo/bar/`) than ``success_url`` after deletion of the message. + """ + user = request.user + now = timezone.now() + message = get_object_or_404(Message, id=message_id) + deleted = False + if success_url is None: + success_url = reverse('django_messages:messages_inbox') + if 'next' in request.GET: + success_url = request.GET['next'] + if message.sender == user: + message.sender_deleted_at = now + deleted = True + if message.recipient == user: + message.recipient_deleted_at = now + deleted = True + if deleted: + message.save() + messages.info(request, _(u"Message successfully deleted.")) + if notification: + notification.send([user], "messages_deleted", {'message': message,}) + return HttpResponseRedirect(success_url) + raise Http404 + + +@login_required +def undelete(request, message_id, success_url=None): + """ + Recovers a message from trash. This is achieved by removing the + ``(sender|recipient)_deleted_at`` from the model. + """ + user = request.user + message = get_object_or_404(Message, id=message_id) + undeleted = False + if success_url is None: + success_url = reverse('django_messages:messages_inbox') + if 'next' in request.GET: + success_url = request.GET['next'] + if message.sender == user: + message.sender_deleted_at = None + undeleted = True + if message.recipient == user: + message.recipient_deleted_at = None + undeleted = True + if undeleted: + message.save() + messages.info(request, _(u"Message successfully recovered.")) + if notification: + notification.send([user], "messages_recovered", {'message': message,}) + return HttpResponseRedirect(success_url) + raise Http404 + + +@login_required +def view(request, message_id, form_class=ComposeForm, quote_helper=format_quote, + subject_template=_(u"Re: %(subject)s"), + template_name='django_messages/view.html'): + """ + Shows a single message.``message_id`` argument is required. + The user is only allowed to see the message, if he is either + the sender or the recipient. If the user is not allowed a 404 + is raised. + If the user is the recipient and the message is unread + ``read_at`` is set to the current datetime. + If the user is the recipient a reply form will be added to the + tenplate context, otherwise 'reply_form' will be None. + """ + user = request.user + now = timezone.now() + message = get_object_or_404(Message, id=message_id) + if (message.sender != user) and (message.recipient != user): + raise Http404 + if message.read_at is None and message.recipient == user: + message.read_at = now + message.save() + + context = {'message': message, 'reply_form': None} + if message.recipient == user: + form = form_class(initial={ + 'body': quote_helper(message.sender, message.body), + 'subject': subject_template % {'subject': message.subject}, + 'recipient': [message.sender,] + }) + context['reply_form'] = form + return render(request, template_name, context) diff --git a/djing/settings_example.py b/djing/settings_example.py index c0b885a..e34a0f1 100644 --- a/djing/settings_example.py +++ b/djing/settings_example.py @@ -28,7 +28,6 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'accounts_app', 'photo_app', - 'privatemessage', 'abonapp', 'tariff_app', 'ip_pool', diff --git a/djing/urls.py b/djing/urls.py index 5fddc86..a5dbe96 100644 --- a/djing/urls.py +++ b/djing/urls.py @@ -8,7 +8,6 @@ from .views import home urlpatterns = [ url(r'^$', home), url(r'^accounts/', include('accounts_app.urls', namespace='acc_app')), - url(r'^im/', include('privatemessage.urls', namespace='privmsg')), url(r'^abons/', include('abonapp.urls', namespace='abonapp')), url(r'^tarifs/', include('tariff_app.urls', namespace='tarifs')), url(r'^ip_pool/', include('ip_pool.urls', namespace='ip_pool')), @@ -18,6 +17,7 @@ urlpatterns = [ url(r'^statistic/', include('statistics.urls', namespace='statistics')), url(r'^tasks/', include('taskapp.urls', namespace='taskapp')), url(r'^client/', include('clientsideapp.urls', namespace='client_side')), + url(r'^msg/', include('django_messages.urls', namespace='django_messages')), url(r'^admin/', admin.site.urls) ] diff --git a/privatemessage/admin.py b/privatemessage/admin.py deleted file mode 100644 index cc01895..0000000 --- a/privatemessage/admin.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.contrib import admin - -from .models import PrivateMessages, Dialog - - -admin.site.register(PrivateMessages) -admin.site.register(Dialog) diff --git a/privatemessage/context_processors.py b/privatemessage/context_processors.py deleted file mode 100644 index adfab5b..0000000 --- a/privatemessage/context_processors.py +++ /dev/null @@ -1,7 +0,0 @@ -from .models import PrivateMessages - - -def avail_messages(request): - return { - 'avail_messages_num': PrivateMessages.objects.get_my_messages(request) - } diff --git a/privatemessage/migrations/0001_initial.py b/privatemessage/migrations/0001_initial.py deleted file mode 100644 index 469b0e1..0000000 --- a/privatemessage/migrations/0001_initial.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9 on 2016-06-28 23:51 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Dialog', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=127)), - ('date_create', models.DateTimeField(auto_now_add=True)), - ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', - to=settings.AUTH_USER_MODEL)), - ('recepient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', - to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='PrivateMessages', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date_send', models.DateTimeField(auto_now_add=True)), - ('text', models.TextField()), - ('is_viewed', models.BooleanField(default=False)), - ('dialog', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='privatemessage.Dialog')), - ], - ), - ] diff --git a/privatemessage/models.py b/privatemessage/models.py deleted file mode 100644 index afc6a65..0000000 --- a/privatemessage/models.py +++ /dev/null @@ -1,33 +0,0 @@ -from django.db import models -from django.conf import settings - - -class MessagesManager(models.Manager): - def get_my_messages(self, request): - if request.user.is_authenticated(): - num = self.filter(recepient=request.user, is_viewed=False).count() - else: - num = 0 - return int(num) - - -class Dialog(models.Model): - title = models.CharField(max_length=127) - owner = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') - recepient = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') - date_create = models.DateTimeField(auto_now_add=True) - - def __str__(self): - return self.title - - -class PrivateMessages(models.Model): - dialog = models.ForeignKey(Dialog) - date_send = models.DateTimeField(auto_now_add=True) - text = models.TextField() - is_viewed = models.BooleanField(default=False) - - objects = MessagesManager() - - def __str__(self): - return self.text diff --git a/privatemessage/urls.py b/privatemessage/urls.py deleted file mode 100644 index ac2cace..0000000 --- a/privatemessage/urls.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.conf.urls import url - -from . import views - - -urlpatterns = [ - url(r'^$', views.home, name='home'), - url(r'^delitem_(?P\d+)$', views.delitem, name='delitem'), - url(r'^write', views.send_message, name='send_message') -] diff --git a/privatemessage/views.py b/privatemessage/views.py deleted file mode 100644 index 2ec4f65..0000000 --- a/privatemessage/views.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- -from json import dumps - -from django.contrib.auth.decorators import login_required -from django.shortcuts import render, redirect -from django.template.loader import render_to_string -from django.http import HttpResponse -from django.template.context_processors import csrf -from django.contrib.auth import get_user_model - -from .models import PrivateMessages -import mydefs - - -@login_required -@mydefs.only_admins -def home(request): - msgs = PrivateMessages.objects.all() - return render(request, 'private_messages/index.html', { - 'msgs': msgs - }) - - -@login_required -@mydefs.only_admins -def delitem(request, id=0): - r = {'errnum': 0, 'errtext': ''} - try: - PrivateMessages.objects.get(id=id).delete() - except PrivateMessages.DoesNotExist: - r = { - 'errnum': 1, - 'errtext': 'Error while deleting, item does not exist' - } - return HttpResponse(dumps(r)) - - -@login_required -@mydefs.only_admins -def send_message(request): - UserModel = get_user_model() - if request.method == 'GET': - return HttpResponse(render_to_string('private_messages/send_form.html', { - 'csrf_token': csrf(request)['csrf_token'], - 'a': request.GET.get('a') - })) - elif request.method == 'POST': - try: - a = request.GET.get('a') - a = 0 if a is None or a == '' else int(a) - msg = PrivateMessages() - msg.sender = request.user - msg.recepient = UserModel.objects.get(id=a) - msg.text = request.POST.get('msg_text') - msg.save() - return redirect('privmsg:home') - except UserModel.DoesNotExist: - return mydefs.res_error(request, 'Адресат не найден') - else: - return mydefs.res_error(request, 'Ошибка типа запроса') diff --git a/templates/accounts/acc_list.html b/templates/accounts/acc_list.html index d6cc104..09e2880 100644 --- a/templates/accounts/acc_list.html +++ b/templates/accounts/acc_list.html @@ -39,7 +39,7 @@ title="Дать задание"> - diff --git a/templates/private_messages/index.html b/templates/private_messages/index.html deleted file mode 100644 index b2fa269..0000000 --- a/templates/private_messages/index.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends 'base.html' %} -{% block main %} - - - - - - - - - - - - - {% for msg in msgs %}{% include 'private_messages/item.html' %} - {% empty %} - - - - - - {% endfor %} - - - - - - - - - -
СообщениеОт когоКогдаDo
Нет сообщений
{% include 'toolbar_page.html' with pag=msgs %}
- -{% endblock %} \ No newline at end of file diff --git a/templates/private_messages/item.html b/templates/private_messages/item.html deleted file mode 100644 index 0e19eb8..0000000 --- a/templates/private_messages/item.html +++ /dev/null @@ -1,7 +0,0 @@ - - - {{ msg.text }} - {{ msg.sender.get_full_name }} - {{ msg.date_send }} - - diff --git a/templates/private_messages/send_form.html b/templates/private_messages/send_form.html deleted file mode 100644 index 3470597..0000000 --- a/templates/private_messages/send_form.html +++ /dev/null @@ -1,14 +0,0 @@ -
{% csrf_token %} -
-

Отправить сообщение

-
-
- - -
- -