Browse Source

conversations development. coming soon...

devel
Dmitry 9 years ago
parent
commit
bbd5a6a14d
  1. 15
      abonapp/templates/abonapp/peoples.html
  2. 8
      abonapp/templatetags/dpagination.py
  3. 18
      accounts_app/models.py
  4. 4
      accounts_app/templates/accounts/acc_list.html
  5. 8
      accounts_app/templates/accounts/ext.htm
  6. 4
      accounts_app/templates/accounts/settings/ext.htm
  7. 2
      accounts_app/views.py
  8. 3
      django_messages/__init__.py
  9. 112
      django_messages/admin.py
  10. 6
      django_messages/apps.py
  11. 7
      django_messages/context_processors.py
  12. 21
      django_messages/fields.py
  13. 67
      django_messages/forms.py
  14. 317
      django_messages/locale/ar/LC_MESSAGES/django.po
  15. 398
      django_messages/locale/cs/LC_MESSAGES/django.po
  16. 367
      django_messages/locale/da/LC_MESSAGES/django.po
  17. 321
      django_messages/locale/de/LC_MESSAGES/django.po
  18. 291
      django_messages/locale/el/LC_MESSAGES/django.po
  19. 314
      django_messages/locale/es/LC_MESSAGES/django.po
  20. 312
      django_messages/locale/es_AR/LC_MESSAGES/django.po
  21. 357
      django_messages/locale/fa/LC_MESSAGES/django.po
  22. 408
      django_messages/locale/fr/LC_MESSAGES/django.po
  23. 317
      django_messages/locale/it/LC_MESSAGES/django.po
  24. 292
      django_messages/locale/ko/LC_MESSAGES/django.po
  25. 320
      django_messages/locale/lt/LC_MESSAGES/django.po
  26. 314
      django_messages/locale/nl/LC_MESSAGES/django.po
  27. 305
      django_messages/locale/pl/LC_MESSAGES/django.po
  28. 314
      django_messages/locale/pt_BR/LC_MESSAGES/django.po
  29. 317
      django_messages/locale/ro/LC_MESSAGES/django.po
  30. 332
      django_messages/locale/ru/LC_MESSAGES/django.po
  31. 299
      django_messages/locale/zh_CN/LC_MESSAGES/django.po
  32. 18
      django_messages/management.py
  33. 32
      django_messages/management/commands/delete_deleted_messages.py
  34. 37
      django_messages/migrations/0001_initial.py
  35. 20
      django_messages/migrations/0002_auto_20160607_0852.py
  36. 0
      django_messages/migrations/__init__.py
  37. 105
      django_messages/models.py
  38. 11
      django_messages/templates/base.html
  39. 53
      django_messages/templates/django_messages/compose.html
  40. 43
      django_messages/templates/django_messages/ext.htm
  41. 30
      django_messages/templates/django_messages/inbox.html
  42. 13
      django_messages/templates/django_messages/new_message.html
  43. 27
      django_messages/templates/django_messages/outbox.html
  44. 29
      django_messages/templates/django_messages/trash.html
  45. 35
      django_messages/templates/django_messages/view.html
  46. 1
      django_messages/templates/notification/messages_deleted/notice.html
  47. 2
      django_messages/templates/notification/messages_received/notice.html
  48. 1
      django_messages/templates/notification/messages_recovered/notice.html
  49. 2
      django_messages/templates/notification/messages_replied/notice.html
  50. 2
      django_messages/templates/notification/messages_reply_received/notice.html
  51. 2
      django_messages/templates/notification/messages_sent/notice.html
  52. 0
      django_messages/templatetags/__init__.py
  53. 45
      django_messages/templatetags/inbox.py
  54. 178
      django_messages/tests.py
  55. 15
      django_messages/urls.py
  56. 99
      django_messages/utils.py
  57. 231
      django_messages/views.py
  58. 7
      djing/settings_example.py
  59. 2
      djing/urls.py
  60. 2
      docs/install.md
  61. 0
      msg_app/__init__.py
  62. 3
      msg_app/admin.py
  63. 5
      msg_app/apps.py
  64. 9
      msg_app/context_processors.py
  65. 63
      msg_app/forms.py
  66. 0
      msg_app/migrations/__init__.py
  67. 222
      msg_app/models.py
  68. 82
      msg_app/templates/msg_app/chat.html
  69. 60
      msg_app/templates/msg_app/conversations.html
  70. 33
      msg_app/templates/msg_app/modal_new_conversation.html
  71. 3
      msg_app/tests.py
  72. 9
      msg_app/urls.py
  73. 52
      msg_app/views.py
  74. 13
      templates/base.html

15
abonapp/templates/abonapp/peoples.html

@ -1,5 +1,6 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% load i18n %} {% load i18n %}
{% load dpagination %}
{% block main %} {% block main %}
@ -20,32 +21,32 @@
<tr> <tr>
<th>#</th> <th>#</th>
<th> <th>
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=username&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=username dir=dir|default:"down" %}">
{% trans 'Sub' %} {% trans 'Sub' %}
</a> </a>
{% if order_by == 'username' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'username' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th> </th>
<th>{% trans 'Last traffic' %}</th> <th>{% trans 'Last traffic' %}</th>
<th> <th>
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=ip_address&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=ip_address dir=dir|default:"down" %}">
{% trans 'Ip address' %} {% trans 'Ip address' %}
</a> </a>
{% if order_by == 'ip_address' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'ip_address' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th> </th>
<th> <th>
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=fio&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=fio dir=dir|default:"down" %}">
{% trans 'fio' %} {% trans 'fio' %}
</a> </a>
{% if order_by == 'fio' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'fio' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th> </th>
<th> <th>
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=street&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=street dir=dir|default:"down" %}">
{% trans 'Street' %} {% trans 'Street' %}
</a> </a>
{% if order_by == 'street' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'street' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th> </th>
<th width="100"> <th width="100">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=house&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=house dir=dir|default:"down" %}">
{% trans 'Apartment' %} {% trans 'Apartment' %}
</a> </a>
{% if order_by == 'house' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'house' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -53,7 +54,7 @@
<th width="150">{% trans 'Telephone' %}</th> <th width="150">{% trans 'Telephone' %}</th>
<th width="150">{% trans 'Service' %}</th> <th width="150">{% trans 'Service' %}</th>
<th width="50"> <th width="50">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?order_by=ballance&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_replace request order_by=ballance dir=dir|default:"down" %}">
{% trans 'Ballance' %} {% trans 'Ballance' %}
</a> </a>
{% if order_by == 'ballance' %}<span class="glyphicon glyphicon-filter"></span>{% endif %} {% if order_by == 'ballance' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -144,7 +145,7 @@
<div class="panel-heading">{% trans 'Streets' %}</div> <div class="panel-heading">{% trans 'Streets' %}</div>
<div class="list-group"> <div class="list-group">
{% for street in streets %} {% for street in streets %}
<a href="{% url 'abonapp:people_list' abon_group.pk %}?street={{ street.pk }}" class="list-group-item{% if street_id == street.pk %} active{% endif %}">{{ street.name }}</a>
<a href="{% url 'abonapp:people_list' abon_group.pk %}?{% url_page_replace request 'street' street.pk %}" class="list-group-item{% if street_id == street.pk %} active{% endif %}">{{ street.name }}</a>
{% empty %} {% empty %}
<a href="#" class="list-group-item">{% trans 'No streets found for that group' %}</a> <a href="#" class="list-group-item">{% trans 'No streets found for that group' %}</a>
{% endfor %} {% endfor %}

8
abonapp/templatetags/dpagination.py

@ -8,3 +8,11 @@ def url_page_replace(request, field, value):
dict_ = request.GET.copy() dict_ = request.GET.copy()
dict_[field] = value dict_[field] = value
return dict_.urlencode() return dict_.urlencode()
@register.simple_tag
def url_replace(request, *args, **kwargs):
dict_ = request.GET.copy()
for k, v in kwargs.items():
dict_[k] = v
return dict_.urlencode()

18
accounts_app/models.py

@ -1,4 +1,5 @@
# -*- coding:utf-8 -*- # -*- coding:utf-8 -*-
import os
from django.db import models from django.db import models
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser, PermissionsMixin from django.contrib.auth.models import BaseUserManager, AbstractBaseUser, PermissionsMixin
from django.core.validators import RegexValidator from django.core.validators import RegexValidator
@ -7,7 +8,7 @@ from django.conf import settings
from photo_app.models import Photo from photo_app.models import Photo
DEFAULT_PICTURE = getattr(settings, 'DEFAULT_PICTURE', '/static/images/default-avatar.png')
DEFAULT_PICTURE = getattr(settings, 'DEFAULT_PICTURE', '/static/img/user_ava.gif')
TELEPHONE_REGEXP = getattr(settings, 'TELEPHONE_REGEXP', r'^\+[7,8,9,3]\d{10,11}$') TELEPHONE_REGEXP = getattr(settings, 'TELEPHONE_REGEXP', r'^\+[7,8,9,3]\d{10,11}$')
@ -43,9 +44,6 @@ class MyUserManager(BaseUserManager):
user.save(using=self._db) user.save(using=self._db)
return user return user
def get_queryset(self):
return super(MyUserManager, self).get_queryset().filter(is_admin=True)
class UserProfile(AbstractBaseUser, PermissionsMixin): class UserProfile(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=127, unique=True) username = models.CharField(max_length=127, unique=True)
@ -82,13 +80,21 @@ class UserProfile(AbstractBaseUser, PermissionsMixin):
def get_big_ava(self): def get_big_ava(self):
if self.avatar: if self.avatar:
return self.avatar.big()
path = self.avatar.big()
if os.path.exists(path):
return path
else:
return DEFAULT_PICTURE
else: else:
return DEFAULT_PICTURE return DEFAULT_PICTURE
def get_min_ava(self): def get_min_ava(self):
if self.avatar: if self.avatar:
return self.avatar.min()
path = self.avatar.min()
if os.path.exists(path):
return path
else:
return DEFAULT_PICTURE
else: else:
return DEFAULT_PICTURE return DEFAULT_PICTURE

4
accounts_app/templates/accounts/acc_list.html

@ -25,7 +25,7 @@
{% for usr in users %} {% for usr in users %}
<tr> <tr>
<td><a href="{% url 'acc_app:other_profile' usr.id %}"> <td><a href="{% url 'acc_app:other_profile' usr.id %}">
<img width="50" src="{{ usr.avatar.min|default:"/static/img/user_ava.gif" }}"
<img width="50" src="{{ usr.get_min_ava }}"
alt="{{ usr.username }}"/> alt="{{ usr.username }}"/>
</a></td> </a></td>
<td><a href="{% url 'acc_app:other_profile' usr.id %}">{{ usr.username }}</a></td> <td><a href="{% url 'acc_app:other_profile' usr.id %}">{{ usr.username }}</a></td>
@ -39,7 +39,7 @@
title="Дать задание"> title="Дать задание">
<span class="glyphicon glyphicon-tasks"></span> <span class="glyphicon glyphicon-tasks"></span>
</a> </a>
<a href="{% url 'django_messages:messages_compose' %}?a={{ usr.id }}" class="btn btn-sm btn-info"
<a href="{ % url 'django_messages:messages_compose' % }?a={{ usr.id }}" class="btn btn-sm btn-info"
title="Отправить сообщение"> title="Отправить сообщение">
<span class="glyphicon glyphicon-envelope"></span> <span class="glyphicon glyphicon-envelope"></span>
</a> </a>

8
accounts_app/templates/accounts/ext.htm

@ -14,22 +14,22 @@
<div class="col-sm-3"> <div class="col-sm-3">
<div class="thumbnail"> <div class="thumbnail">
{% if userprofile.avatar %} {% if userprofile.avatar %}
<a href="{{ userprofile.avatar.big }}" class="thumbnail" target="_blank">
<img alt="ava" src="{{ userprofile.avatar.min }}"/>
<a href="{{ userprofile.get_big_ava }}" class="thumbnail" target="_blank">
<img alt="ava" src="{{ userprofile.get_min_ava }}"/>
</a> </a>
{% else %} {% else %}
<img alt="ava" src="/static/img/user_ava.gif"/> <img alt="ava" src="/static/img/user_ava.gif"/>
{% endif %} {% endif %}
<div class="caption btn-group btn-group-sm"> <div class="caption btn-group btn-group-sm">
{% if userprofile == request.user %} {% if userprofile == request.user %}
<a href="{% url 'acc_app:setup_info' %}" class="btn btn-primary btn-sm" role="button">
<a href="{% url 'acc_app:setup_info' %}" class="btn btn-primary" role="button">
<span class="glyphicon glyphicon-edit"></span> <span class="glyphicon glyphicon-edit"></span>
{% trans 'Edit' %} {% trans 'Edit' %}
</a> </a>
{% endif %} {% endif %}
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
{% if userprofile.is_superuser %} {% if userprofile.is_superuser %}
<a href="{% url 'acc_app:setup_perms' userprofile.pk %}" class="btn btn-default btn-sm" title="{% trans 'Profile is superuser, permissions to change it makes no sense' %}" data-toggle="tooltip">
<a href="{% url 'acc_app:setup_perms' userprofile.pk %}" class="btn btn-default" title="{% trans 'Profile is superuser, permissions to change it makes no sense' %}" data-toggle="tooltip">
<span class="glyphicon glyphicon-lock"></span> <span class="glyphicon glyphicon-lock"></span>
{% trans 'Permission options' %} {% trans 'Permission options' %}
</a> </a>

4
accounts_app/templates/accounts/settings/ext.htm

@ -16,9 +16,7 @@
<form action="{% url 'acc_app:setup_avatar' %}" method="post" class="thumbnail" <form action="{% url 'acc_app:setup_avatar' %}" method="post" class="thumbnail"
enctype="multipart/form-data">{% csrf_token %} enctype="multipart/form-data">{% csrf_token %}
{% if user.avatar %}<img alt="ava" src="{{ user.avatar.min }}"/>
{% else %}<img alt="ava" src="/static/img/user_ava.gif"/>
{% endif %}
<img alt="ava" src="{{ user.get_min_ava }}"/>
<div class="caption"> <div class="caption">
<button type="submit" class="btn btn-primary">{% trans 'Save' %}</button> <button type="submit" class="btn btn-primary">{% trans 'Save' %}</button>

2
accounts_app/views.py

@ -3,7 +3,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout from django.contrib.auth import authenticate, login, logout
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import NoReverseMatch from django.core.urlresolvers import NoReverseMatch
from django.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages from django.contrib import messages
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from abonapp.models import AbonGroup from abonapp.models import AbonGroup

3
django_messages/__init__.py

@ -1,3 +0,0 @@
VERSION = (0, 5, 3,)
__version__ = '.'.join(map(str, VERSION))
default_app_config = 'django_messages.apps.DjangoMessagesConfig'

112
django_messages/admin.py

@ -1,112 +0,0 @@
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)

6
django_messages/apps.py

@ -1,6 +0,0 @@
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _
class DjangoMessagesConfig(AppConfig):
name = 'django_messages'
verbose_name = _('Messages')

7
django_messages/context_processors.py

@ -1,7 +0,0 @@
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 {}

21
django_messages/fields.py

@ -1,21 +0,0 @@
"""
Based on http://www.djangosnippets.org/snippets/595/
by sopelkin
"""
from django.forms import widgets
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)

67
django_messages/forms.py

@ -1,67 +0,0 @@
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

317
django_messages/locale/ar/LC_MESSAGES/django.po

@ -1,317 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Ossama M. Khayat <okhayat@yahoo.com>, 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 <okhayat@yahoo.com>\n"
"Language-Team: Arabic <doc@arabeyes.org>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "قمت بحذف الرسالة <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"وصلتك الرسالة <a href=\"%(message_url)s\">%(message)s</a> "
"من %(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "قمت باسترجاع الرسالة <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"قمت بالرد الرسائل <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"من %(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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"قمت بإرسالة الرسالة <a href=\"%(message_url)s\">%(message)s</a> إلى %"
"(message_recipient)s."

398
django_messages/locale/cs/LC_MESSAGES/django.po

@ -1,398 +0,0 @@
# Czech translation.
# Radim Sückr <radim.suckr@gmail.com>, 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 <radim.suckr@gmail.com>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Smazali jste zprávu <a href=\"%(message_url)s\">%(message)s</a>."
#: 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 <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Přišla vám zpráva <a href=\"%(message_url)s\">%(message)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Obnovili jste zprávu <a href=\"%(message_url)s\">%(message)s</a>."
#: 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 <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Odpověděli jste na <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr ""
"Odeslali jste zprávu <a href=\"%(message_url)s\">%(message)s</a> 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."

367
django_messages/locale/da/LC_MESSAGES/django.po

@ -1,367 +0,0 @@
# django-messages in Danish.
# django-messages på Dansk.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Michael Lind Mortensen <illio@cs.au.dk>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Du har slettet beskeden <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Du har modtaget beskeden <a href=\"%(message_url)s\">%(message)s</a> fra %"
"(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Du har genskabt beskeden <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Du har besvaret <a href=\"%(message_url)s\">%(message_parent_msg)s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"Du har sendt beskeden <a href=\"%(message_url)s\">%(message)s</a> 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."

321
django_messages/locale/de/LC_MESSAGES/django.po

@ -1,321 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-11 12:31-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Du hast die Nachricht <a href=\"%(message_url)s\">%(message)s</a> gelöscht."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Du hast die Nachricht <a href=\"%(message_url)s\">%(message)s</a> von %"
"(message_sender)s erhalten."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Du hast die Nachricht <a href=\"%(message_url)s\">%(message)s</a> "
"wiederhergestellt."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Du hast auf die Nachricht <a href=\"%(message_url)s\">%(message_parent_msg)"
"s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"Du hast die Nachricht <a href=\"%(message_url)s\">%(message)s</a> an %"
"(message_recipient)s gesendet."

291
django_messages/locale/el/LC_MESSAGES/django.po

@ -1,291 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
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 <mgogoulos@gmail.com>\n"
"Language-Team: Markos Gogoulos <mgogoulos@gmail.com>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Έχετε διαγράψει το μήνυμα <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid "You have received the message <a href=\"%(message_url)s\">%(message)s</a> from %(message_sender)s."
msgstr "Έχετε λάβει το μήνυμα <a href=\"%(message_url)s\">%(message)s</a> από τον/την %(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid "You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Έχετε ανακτήσει το μήνυμα <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid "You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> from %(message_recipient)s."
msgstr "Έχετε απαντήσει στο <a href=\"%(message_url)s\">%(message_parent_msg)s</a>από τον/την %(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 <a href=\"%(message_url)s\">%(message)s</a> to %(message_recipient)s."
msgstr "Έχετε στείλει το μήνυμα <a href=\"%(message_url)s\">%(message)s</a> στον/στην %(message_recipient)s."

314
django_messages/locale/es/LC_MESSAGES/django.po

@ -1,314 +0,0 @@
# django-messages in Spanish.
# django-messages en Español.
# Copyright (C) 2008
# This file is distributed under the same license as the django-messages package.
# Maria Guadalupe Paz Urrea <paz.lupita@gmail.com>, 2008.
# Alfonso Bernardo Harita Rascón <alharita@gmail.com>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "ha borrado el mensaje <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"ha recibido el mensaje <a href=\"%(message_url)s\">%(message)s</a> de %"
"(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "ha recuperado el mensaje <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"ha respondido a <a href=\"%(message_url)s\">%(message_parent_msg)s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"ha enviado el mensaje <a href=\"%(message_url)s\">%(message)s</a> a %"
"(message_recipient)s."

312
django_messages/locale/es_AR/LC_MESSAGES/django.po

@ -1,312 +0,0 @@
# 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 <ceciliapuccinelli@gmail.com>, 2008.
# Juan José Conti <jjconti@gnu.org>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "ha eliminado el mensaje %(message)s."
#: templates/notification/messages_received/notice.html:2
#, fuzzy, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "ha recuperado el mensaje %(message)s."
#: templates/notification/messages_replied/notice.html:2
#, fuzzy, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a> 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"

357
django_messages/locale/fa/LC_MESSAGES/django.po

@ -1,357 +0,0 @@
# django-messages fari translations
# Copyright (C) 2012 Hassan Zamani
# This file is distributed under the same license as the djagno-messages package.
# Hassan Zamani <hsn.zamani@gmail.com>, 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 <hsn.zamani@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "شما پیام <a href=\"%(message_url)s\">%(message)s</a> را حذف کردید."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr "شما پیام جدید <a href=\"%(message_url)s\">%(message)s</a> را از %(message_sender)s دریافت کردید."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "شما پیام <a href=\"%(message_url)s\">%(message)s</a> را بازیابی کردید."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr "شما به پیام <a href=\"%(message_url)s\">%(message_parent_msg)s</a> از %(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 <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr "شما پیام <a href=\"%(message_url)s\">%(message)s</a> را به %(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 "هنوز پاسخ داده نشده است"

408
django_messages/locale/fr/LC_MESSAGES/django.po

@ -1,408 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
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 <frederic.roland@creativeconvergence.be>\n"
"Language-Team: Frédéric Roland <frederic.roland@creativeconvergence.be>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Vous avez effacé le message <a href=\"%(message_url)s\">%(message)s</a>."
#: 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 <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Vous avez reçu le message <a href=\"%(message_url)s\">%(message)s</a> 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Vous avez récupéré le message <a href=\"%(message_url)s\">%(message)s</a>."
#: 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 <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Vous avez répondu à <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr ""
"Vous avez envoyé le message <a href=\"%(message_url)s\">%(message)s</a> à "
"%(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 ""
#~ "<a href=\"%(sender_url)s\">%(message_sender)s</a> has sent you a reply to "
#~ "'<a href=\"%(message_url)s\">%(message_parent_msg)s</a>'."
#~ msgstr ""
#~ "<a href=\"%(sender_url)s\">%(message_sender)s</a> vous a envoyé une "
#~ "réponse à '<a href=\"%(message_url)s\">%(message_parent_msg)s</a>'."

317
django_messages/locale/it/LC_MESSAGES/django.po

@ -1,317 +0,0 @@
# 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 <sergiomorstabilini@gmail.com>, 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 <sergiomorstabilini@gmail.com>\n"
"Language-Team: Sergio Morstabilini <sergiomorstabilini@gmail.com>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Hai cancellato il messaggio <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid "You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Hai ripristinato il messaggio <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid "You have received the message <a href=\"%(message_url)s\">%(message)s</a> from %(message_sender)s."
msgstr "Hai ricevuto il messaggio <a href=\"%(message_url)s\">%(message)s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %(message_recipient)s."
msgstr "Hai inviato il messaggio <a href=\"%(message_url)s\">%(message)s</a> a %(message_recipient)s."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid "You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> from %(message_recipient)s."
msgstr "Hai risposto a <a href=\"%(message_url)s\">%(message_parent_msg)s</a> 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 "<a href=\"%(sender_url)s\">%(message_sender)s</a> has sent you a reply to '<a href=\"%(message_url)s\">%(message_parent_msg)s</a>'."
#~ msgstr "<a href=\"%(sender_url)s\">%(message_sender)s</a> ha risposto a '<a href=\"%(message_url)s\">%(message_parent_msg)s</a>'."
#~ msgid "You have sent the message '%(message)s' to %(message_recipient)s."
#~ msgstr "Hai spedito il messaggio '%(message)s' a %(message_recipient)s."

292
django_messages/locale/ko/LC_MESSAGES/django.po

@ -1,292 +0,0 @@
# django-messages translation for Korean.
# Copyright (C) 2012 Jeong YunWon
# This file is distributed under the same license as the django-messages package.
# Jeong YunWon <jeong@youknowone.org>, 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 <jeong@youknowone.org>\n"
"Language-Team: Jeong YunWon <jeong@youknowone.org>\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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "<a href=\"%(message_url)s\">%(message)s</a> 지윘습니다."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid "You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "<a href=\"%(message_url)s\">%(message)s</a> 되살렸습니다."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid "You have received the message <a href=\"%(message_url)s\">%(message)s</a> from %(message_sender)s."
msgstr "%(message_sender)s 님에게 <a href=\"%(message_url)s\">%(message)s</a> 받았습니다."
#: 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 <a href=\"%(message_url)s\">%(message)s</a> to %(message_recipient)s."
msgstr "%(message_recipient)s 님에게 <a href=\"%(message_url)s\">%(message)s</a> 보냈습니다."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid "You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> from %(message_recipient)s."
msgstr "%(message_recipient)s 님의 <a href=\"%(message_url)s\">%(message_parent_msg)s</a> 에 답장하였습니다."
#: 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"

320
django_messages/locale/lt/LC_MESSAGES/django.po

@ -1,320 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-11 12:31-0700\n"
"PO-Revision-Date: 2015-03-24 10:53+0200\n"
"Last-Translator: Saulius Zemaitaitis <saulius@zemaitaitis.lt>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Ištrynėte žinutę <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Gavote žinutę <a href=\"%(message_url)s\">%(message)s</a> nuo %"
"(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Atstatėte žinutę <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Jūs atsakėte į žinutę <a href=\"%(message_url)s\">%(message_parent_msg)"
"s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"Išsiuntėte žinutę <a href=\"%(message_url)s\">%(message)s</a> %"
"(message_recipient)s."

314
django_messages/locale/nl/LC_MESSAGES/django.po

@ -1,314 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 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 <info@krisje8.com>\n"
"Language-Team: krisje8 <info@krisje8.com\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 "Ontvanger"
#: admin.py:15
msgid "group"
msgstr "groep"
#: admin.py:16
msgid "Creates the message optionally for all users or a group of users."
msgstr ""
"Maakt het bericht optioneel voor alle gebruikers of een groep van gebruikers."
#: admin.py:23
msgid "All users"
msgstr "Alle gebruikers"
#: admin.py:38 models.py:88
msgid "Message"
msgstr "Bericht"
#: admin.py:45
msgid "Date/time"
msgstr "Datum/tijd"
#: fields.py:53
#, python-format
msgid "The following usernames are incorrect: %(users)s"
msgstr "De volgende gebruikersnamen zijn incorrect: %(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 "Onderwerp"
#: forms.py:22 models.py:50
msgid "Body"
msgstr "Inhoud"
#: management.py:9
msgid "Message Received"
msgstr "Bericht Ontvangen"
#: management.py:9
msgid "you have received a message"
msgstr "je hebt een bericht ontvangen"
#: management.py:10
msgid "Message Sent"
msgstr "Bericht Verstuurd"
#: management.py:10
msgid "you have sent a message"
msgstr "je hebt een bericht verstuurd"
#: management.py:11
msgid "Message Replied"
msgstr "Bericht Beantwoord"
#: management.py:11
msgid "you have replied to a message"
msgstr "je hebt een bericht beantwoord"
#: management.py:12
msgid "Reply Received"
msgstr "Antwoord Ontvangen"
#: management.py:12
msgid "you have received a reply to a message"
msgstr "je hebt een antwoord op een bericht ontvangen"
#: management.py:13
msgid "Message Deleted"
msgstr "Bericht Verwijderd"
#: management.py:13
msgid "you have deleted a message"
msgstr "je hebt een bericht verwijderd"
#: management.py:14
msgid "Message Recovered"
msgstr "Bericht Hersteld"
#: management.py:14
msgid "you have undeleted a message"
msgstr "je hebt een bericht hersteld"
#: models.py:51 templates/messages/inbox.html:7
#: templates/messages/trash.html:7 templates/messages/view.html:8
msgid "Sender"
msgstr "Verstuurder"
#: models.py:53
msgid "Parent message"
msgstr "Hoofdbericht"
#: models.py:54
msgid "sent at"
msgstr "verstuurd op"
#: models.py:55
msgid "read at"
msgstr "gelezen op"
#: models.py:56
msgid "replied at"
msgstr "beantwoord op"
#: models.py:57
msgid "Sender deleted at"
msgstr "Verstuurder verwijderde op"
#: models.py:58
msgid "Recipient deleted at"
msgstr "Ontvanger verwijderde op"
#: models.py:89
msgid "Messages"
msgstr "Berichten"
#: utils.py:27
#, python-format
msgid "New Message: %(subject)s"
msgstr "Nieuw Bericht: %(subject)s"
#: views.py:78 views.py:112
msgid "Message successfully sent."
msgstr "Bericht succesvol verstuurd."
#: views.py:118
#, python-format
msgid ""
"%(sender)s wrote:\n"
"%(body)s"
msgstr ""
"%(sender)s schreef:\n"
"%(body)s"
#: views.py:122
#, python-format
msgid "Re: %(subject)s"
msgstr "Antw: %(subject)s"
#: views.py:158
msgid "Message successfully deleted."
msgstr "Bericht succesvol verwijderd."
#: views.py:185
msgid "Message successfully recovered."
msgstr "Bericht succesvol hersteld."
#: templates/messages/base.html:8 templates/messages/inbox.html:4
#: templates/messages/new_message.html:10
msgid "Inbox"
msgstr "Postvak In"
#: templates/messages/base.html:9 templates/messages/outbox.html:4
msgid "Sent Messages"
msgstr "Verstuurde berichten"
#: templates/messages/base.html:10
msgid "New Message"
msgstr "Nieuw Bericht"
#: templates/messages/base.html:11
msgid "Trash"
msgstr "Prullenbak"
#: templates/messages/compose.html:4
msgid "Compose Message"
msgstr "Schrijf een bericht"
#: templates/messages/compose.html:9
msgid "Send"
msgstr "Verstuur"
#: templates/messages/inbox.html:7
msgid "Received"
msgstr "Ontvangen"
#: templates/messages/inbox.html:7 templates/messages/outbox.html:7
#: templates/messages/trash.html:7
msgid "Action"
msgstr "Actie"
#: 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 "verwijderen"
#: 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"
"Je hebt een persoonlijk bericht ontvangen van %(sender)s met\n"
"de volgende inhoud:"
#: templates/messages/new_message.html:9
#, python-format
msgid "Sent from %(site_url)s"
msgstr "Verstuurd vanaf %(site_url)s"
#: templates/messages/new_message.html:11 templates/messages/view.html:18
msgid "Reply"
msgstr "Beantwoord"
#: templates/messages/outbox.html:7
msgid "Sent"
msgstr "Verstuurd"
#: templates/messages/trash.html:4
msgid "Deleted Messages"
msgstr "Verwijderde Berichten"
#: templates/messages/trash.html:7 templates/messages/view.html:10
msgid "Date"
msgstr "Datum"
#: templates/messages/trash.html:17
msgid "undelete"
msgstr "herstel"
#: 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 ""
"Verwijderde Berichten worden uit de prullenbak verwijderd op onregelmatige "
"tijden, vertrouw niet op deze functie voor langdurige opslag."
#: templates/messages/view.html:4
msgid "View Message"
msgstr "Bekijk Bericht"
#: templates/messages/view.html:20
msgid "Delete"
msgstr "Verwijder"
#: templates/notification/messages_deleted/notice.html:1
#, python-format
msgid ""
"You have deleted the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Je hebt het bericht <a href=\"%(message_url)s\">%(message)s</a> verwijderd."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Je hebt het bericht <a href=\"%(message_url)s\">%(message)s</a> ontvangen "
"van %(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
"Je hebt het bericht <a href=\"%(message_url)s\">%(message)s</a> hersteld."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Je hebt op <a href=\"%(message_url)s\">%(message_parent_msg)s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"Je hebt het bericht <a href=\"%(message_url)s\">%(message)s</a> naar %"
"(message_recipient)s gestuurd."

305
django_messages/locale/pl/LC_MESSAGES/django.po

@ -1,305 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-11 12:31-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""

314
django_messages/locale/pt_BR/LC_MESSAGES/django.po

@ -1,314 +0,0 @@
# 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 <conchas@gmail.com>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Você excluiu a mensagem <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Você recebeu a mensagem <a href=\"%(message_url)s\">%(message)s</a> de %"
"(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Você recuperou a mensagem <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Você respondeu a mensagem <a href=\"%(message_url)s\">%(message_parent_msg)"
"s</a> 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"Você enviou a mensagem <a href=\"%(message_url)s\">%(message)s</a> para %"
"(message_recipient)s."

317
django_messages/locale/ro/LC_MESSAGES/django.po

@ -1,317 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
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 <edu2004eu@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Ati sters mesajul <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Ati primit mesajul <a href=\"%(message_url)s\">%(message)s</a> von "
"%(message_sender)s."
#: templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Ati recuperat mesajul <a href=\"%(message_url)s\">%(message)s</a>."
#: templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Ati raspuns la mesajul <a href=\"%(message_url)s\">%(message_parent_msg)s</"
"a> 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 <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr ""
"Ati trimis mesajul <a href=\"%(message_url)s\">%(message)s</a> an "
"%(message_recipient)s."

332
django_messages/locale/ru/LC_MESSAGES/django.po

@ -1,332 +0,0 @@
# 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: 2017-02-28 12:46+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: django_messages/admin.py:21
msgid "group"
msgstr "Группа"
#: django_messages/admin.py:22
msgid "Creates the message optionally for all users or a group of users."
msgstr "Создать сообщения опционально для всех пользователей или группы"
#: django_messages/admin.py:30
msgid "All users"
msgstr "Все пользователи"
#: django_messages/admin.py:48 django_messages/models.py:91
msgid "Message"
msgstr "Сообщение"
#: django_messages/admin.py:55
msgid "Date/time"
msgstr "Дата/Время"
#: django_messages/apps.py:6 django_messages/models.py:92
msgid "Messages"
msgstr "Сообщения"
#: django_messages/forms.py:21 django_messages/models.py:55
#: django_messages/templates/django_messages/compose.html:14
#: django_messages/templates/django_messages/outbox.html:9
#: django_messages/templates/django_messages/view.html:13
msgid "Recipient"
msgstr "Получатель"
#: django_messages/forms.py:27 django_messages/models.py:52
#: django_messages/templates/django_messages/compose.html:23
#: django_messages/templates/django_messages/inbox.html:9
#: django_messages/templates/django_messages/outbox.html:9
#: django_messages/templates/django_messages/trash.html:9
#: django_messages/templates/django_messages/view.html:7
msgid "Subject"
msgstr "Тема"
#: django_messages/forms.py:31 django_messages/models.py:53
#: django_messages/templates/django_messages/compose.html:32
msgid "Body"
msgstr "Сообщение"
#: django_messages/management.py:9
msgid "Message Received"
msgstr "Сообщение получено"
#: django_messages/management.py:9
msgid "you have received a message"
msgstr "вы получили сообщение"
#: django_messages/management.py:10
msgid "Message Sent"
msgstr "Сообщение отправлено"
#: django_messages/management.py:10
msgid "you have sent a message"
msgstr "Вы отправили сообщение"
#: django_messages/management.py:11
msgid "Message Replied"
msgstr "Сообщение отвечено"
#: django_messages/management.py:11
msgid "you have replied to a message"
msgstr "вы ответили на сообщение"
#: django_messages/management.py:12
msgid "Reply Received"
msgstr "Ответ получен"
#: django_messages/management.py:12
msgid "you have received a reply to a message"
msgstr "вы получили ответ на сообщение"
#: django_messages/management.py:13
msgid "Message Deleted"
msgstr "Сообщение удалено"
#: django_messages/management.py:13
msgid "you have deleted a message"
msgstr "вы удалили сообщение"
#: django_messages/management.py:14
msgid "Message Recovered"
msgstr "Сообщение восстановлено"
#: django_messages/management.py:14
msgid "you have undeleted a message"
msgstr "вы восстановили сообщение"
#: django_messages/models.py:54
#: django_messages/templates/django_messages/inbox.html:9
#: django_messages/templates/django_messages/trash.html:9
#: django_messages/templates/django_messages/view.html:9
msgid "Sender"
msgstr "Отправитель"
#: django_messages/models.py:56
msgid "Parent message"
msgstr "Родительское сообщение"
#: django_messages/models.py:57
msgid "sent at"
msgstr "отправлено"
#: django_messages/models.py:58
msgid "read at"
msgstr "прочитано"
#: django_messages/models.py:59
msgid "replied at"
msgstr "отвечено"
#: django_messages/models.py:60
msgid "Sender deleted at"
msgstr "Отправитель удалил"
#: django_messages/models.py:61
msgid "Recipient deleted at"
msgstr "Получатель удалил"
#: django_messages/templates/django_messages/compose.html:8
msgid "Compose Message"
msgstr "Новое сообщение"
#: django_messages/templates/django_messages/compose.html:42
msgid "Send"
msgstr "Отправить"
#: django_messages/templates/django_messages/inbox.html:5
#: django_messages/templates/django_messages/new_message.html:12
msgid "Inbox"
msgstr "Входящие"
#: django_messages/templates/django_messages/inbox.html:9
msgid "Received"
msgstr "Получено"
#: django_messages/templates/django_messages/inbox.html:9
#: django_messages/templates/django_messages/outbox.html:9
#: django_messages/templates/django_messages/trash.html:9
msgid "Action"
msgstr "Действия"
#: django_messages/templates/django_messages/inbox.html:21
#: django_messages/templates/django_messages/outbox.html:18
#: django_messages/templates/django_messages/trash.html:18
#: django_messages/templates/django_messages/view.html:12
msgid "DATETIME_FORMAT"
msgstr "j. N Y, H:i"
#: django_messages/templates/django_messages/inbox.html:22
#: django_messages/templates/django_messages/outbox.html:19
msgid "delete"
msgstr "удалить"
#: django_messages/templates/django_messages/inbox.html:28
#: django_messages/templates/django_messages/outbox.html:25
#: django_messages/templates/django_messages/trash.html:25
msgid "No messages."
msgstr "Сообщений нет."
#: django_messages/templates/django_messages/new_message.html:3
#, 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"
"со следующим содержанием:"
#: django_messages/templates/django_messages/new_message.html:11
#, python-format
msgid "Sent from %(site_url)s"
msgstr "Отправлено %(site_url)s"
#: django_messages/templates/django_messages/new_message.html:13
#: django_messages/templates/django_messages/view.html:19
msgid "Reply"
msgstr "Ответить"
#: django_messages/templates/django_messages/outbox.html:5
msgid "Sent Messages"
msgstr "Исходящие"
#: django_messages/templates/django_messages/outbox.html:9
msgid "Sent"
msgstr "Отправлено"
#: django_messages/templates/django_messages/trash.html:5
msgid "Deleted Messages"
msgstr "Удалённые сообщения"
#: django_messages/templates/django_messages/trash.html:9
#: django_messages/templates/django_messages/view.html:11
msgid "Date"
msgstr "Дата"
#: django_messages/templates/django_messages/trash.html:19
msgid "undelete"
msgstr "восстановить"
#: django_messages/templates/django_messages/trash.html:28
msgid ""
"Deleted Messages are removed from the trash at unregular intervals, don't "
"rely on this feature for long-time storage."
msgstr ""
"Удалённые сообщения очищаются из корзины через произвольные интервалы,не "
"используйте эту возможность как долгосрочное хранилище."
#: django_messages/templates/django_messages/view.html:5
msgid "View Message"
msgstr "Просмотр сообщений"
#: django_messages/templates/django_messages/view.html:21
msgid "Delete"
msgstr "Удалить"
#: django_messages/templates/notification/messages_deleted/notice.html:1
#, python-format
msgid ""
"You have deleted the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Вы удалили сообщение <a href=\"%(message_url)s\">%(message)s</a>."
#: django_messages/templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"Вы получили сообщение <a href=\"%(message_url)s\">%(message)s</a> от "
"%(message_sender)s."
#: django_messages/templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "Вы восстановили сообщение <a href=\"%(message_url)s\">%(message)s</a>."
#: django_messages/templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"Вы ответили на <a href=\"%(message_url)s\">%(message_parent_msg)s</a> от "
"%(message_recipient)s."
#: django_messages/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."
#: django_messages/templates/notification/messages_sent/notice.html:2
#, python-format
msgid ""
"You have sent the message <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr ""
"Вы отправили сообщение <a href=\"%(message_url)s\">%(message)s</a> "
"получателям %(message_recipient)s."
#: django_messages/utils.py:20
#, python-format
msgid ""
"%(sender)s wrote:\n"
"%(body)s"
msgstr ""
"%(sender)s написал:\n"
"%(body)s"
#: django_messages/utils.py:49
#, fuzzy, python-format
#| msgid "Re: %(subject)s"
msgid "Re%(prefix)s: %(subject)s"
msgstr "Re: %(subject)s"
#: django_messages/utils.py:56
#, python-format
msgid "New Message: %(subject)s"
msgstr "Новое сообщение: %(subject)s"
#: django_messages/views.py:83 django_messages/views.py:121
msgid "Message successfully sent."
msgstr "Сообщение успешно отправлено."
#: django_messages/views.py:103 django_messages/views.py:202
#, python-format
msgid "Re: %(subject)s"
msgstr "Re: %(subject)s"
#: django_messages/views.py:165
msgid "Message successfully deleted."
msgstr "Сообщение успешно удалено."
#: django_messages/views.py:193
msgid "Message successfully recovered."
msgstr "Сообщение успешно восстановлено."
#~ msgid "The following usernames are incorrect: %(users)s"
#~ msgstr "Некорректные имена пользователей: %(users)s"
#~ msgid "New Message"
#~ msgstr "Новое сообщение"
#~ msgid "Trash"
#~ msgstr "Удалённые"

299
django_messages/locale/zh_CN/LC_MESSAGES/django.po

@ -1,299 +0,0 @@
# django-messages in Simplify Chinese.
# django-messages 简体中文.
# Copyright (C) 2008
# This file is distributed under the same license as the django-messages package.
# Gene Wu <genewoo@gmail.com>, 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 <genewoo@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: 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 <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "你已删除了消息<a href=\"%(message_url)s\">%(message)s</a>."
#: templates\notification\messages_received\notice.html.py:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
"你已收到%(message_sender)s的消息<a href=\"%(message_url)s\">%(message)s</a>。"
""
#: templates\notification\messages_recovered\notice.html.py:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr "你已恢复了消息<a href=\"%(message_url)s\">%(message)s</a>."
#: templates\notification\messages_replied\notice.html.py:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
"你已回复了%(message_recipient)s.发出的消息<a href=\"%(message_url)s\">%(message_parent_msg)s</a>"
""
#: 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 <a href=\"%(message_url)s\">%(message)s</a> to %"
"(message_recipient)s."
msgstr ""
"你已发送消息<a href=\"%(message_url)s\">%(message)s</a>到%"
"(message_recipient)s."

18
django_messages/management.py

@ -1,18 +0,0 @@
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")

32
django_messages/management/commands/delete_deleted_messages.py

@ -1,32 +0,0 @@
import datetime
from django.core.management.base import BaseCommand, CommandError
from django.utils import timezone
from ...models import Message
class Command(BaseCommand):
args = '<minimum age in days (e.g. 30)>'
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()

37
django_messages/migrations/0001_initial.py

@ -1,37 +0,0 @@
# -*- 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,),
),
]

20
django_messages/migrations/0002_auto_20160607_0852.py

@ -1,20 +0,0 @@
# -*- 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,
),
]

0
django_messages/migrations/__init__.py

105
django_messages/models.py

@ -1,105 +0,0 @@
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)

11
django_messages/templates/base.html

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>

53
django_messages/templates/django_messages/compose.html

@ -1,53 +0,0 @@
{% extends request.is_ajax|yesno:'nullcont.htm,django_messages/ext.htm' %}
{% load i18n %}
{% block content %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans "Compose Message"%}</h3>
</div>
<div class="panel-body">
<form action="" method="post">{% csrf_token %}
<div class="form-group">
<label for="id_recipient">{% trans "Recipient" %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
{{ form.recipient }}{{ form.recipient.errors }}
</div>
</div>
<div class="form-group">
<label for="id_subject">{% trans "Subject" %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-blackboard"></span></span>
{{ form.subject }}{{ form.subject.errors }}
</div>
</div>
<div class="form-group">
<label for="id_body">{% trans "Body" %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-text-background"></span></span>
{{ form.body }}{{ form.body.errors }}
</div>
</div>
<div class="btn-group">
<button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans "Send" %}
</button>
<button type="reset" class="btn btn-sm btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> Reset
</button>
</div>
</form>
</div>
</div>
{% endblock %}

43
django_messages/templates/django_messages/ext.htm

@ -1,43 +0,0 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li class="active">Сообщения</li>
</ol>
{% include 'message_block.html' %}
<ul class="nav nav-tabs">
{% url 'django_messages:messages_inbox' as inp_msg %}
<li{% if inp_msg == request.path %} class="active"{% endif %}>
<a href="{{ inp_msg }}">{% trans "Inbox" %}</a>
</li>
{% url 'django_messages:messages_outbox' as out_msg %}
<li{% if out_msg == request.path %} class="active"{% endif %}>
<a href="{{ out_msg }}">{% trans "Sent Messages" %}</a>
</li>
{% url 'django_messages:messages_compose' as cmp_msg %}
<li{% if cmp_msg == request.path %} class="active"{% endif %}>
<a href="{{ cmp_msg }}">{% trans "New Message" %}</a>
</li>
{% url 'django_messages:messages_trash' as trh_msg %}
<li{% if trh_msg == request.path %} class="active"{% endif %}>
<a href="{{ trh_msg }}">{% trans "Trash" %}</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active">
{% block content %}{% endblock %}
</div>
</div>
{% endblock %}

30
django_messages/templates/django_messages/inbox.html

@ -1,30 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block content %}
<h1>{% trans "Inbox" %}</h1>
{% if message_list %}
<table class="messages">
<thead>
<tr><th>{% trans "Sender" %}</th><th>{% trans "Subject" %}</th><th>{% trans "Received" %}</th><th>{% trans "Action" %}</th></tr>
</thead>
<tbody>
{% for message in message_list %}
<tr>
<td>{{ message.sender }}</td>
<td>
{% if message.new %}<strong>{% endif %}
{% if message.replied %}<em>{% endif %}
<a href="{{ message.get_absolute_url }}">{{ message.subject }}</a>
{% if message.replied %}</em>{% endif %}
{% if message.new %}</strong>{% endif %}</td>
<td>{{ message.sent_at|date:_("DATETIME_FORMAT") }}</td>
<td><a href="{% url 'django_messages:messages_delete' message.id %}">{% trans "delete" %}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>{% trans "No messages." %}</p>
{% endif %}
{% endblock %}

13
django_messages/templates/django_messages/new_message.html

@ -1,13 +0,0 @@
{% 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 %}

27
django_messages/templates/django_messages/outbox.html

@ -1,27 +0,0 @@
{% extends "django_messages/base.html" %}
{% load i18n %}
{% block content %}
<h1>{% trans "Sent Messages" %}</h1>
{% if message_list %}
<table class="messages">
<thead>
<tr><th>{% trans "Recipient" %}</th><th>{% trans "Subject" %}</th><th>{% trans "Sent" %}</th><th>{% trans "Action" %}</th></tr>
</thead>
<tbody>
{% for message in message_list %}
<tr>
<td>{{ message.recipient }}</td>
<td>
<a href="{{ message.get_absolute_url }}">{{ message.subject }}</a>
</td>
<td>{{ message.sent_at|date:_("DATETIME_FORMAT") }}</td>
<td><a href="{% url 'django_messages:messages_delete' message.id %}?next={% url 'django_messages:messages_outbox' %}">{% trans "delete" %}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>{% trans "No messages." %}</p>
{% endif %}
{% endblock %}

29
django_messages/templates/django_messages/trash.html

@ -1,29 +0,0 @@
{% extends "django_messages/base.html" %}
{% load i18n %}
{% block content %}
<h1>{% trans "Deleted Messages" %}</h1>
{% if message_list %}
<table class="messages">
<thead>
<tr><th>{% trans "Sender" %}</th><th>{% trans "Subject" %}</th><th>{% trans "Date" %}</th><th>{% trans "Action" %}</th></tr>
</thead>
<tbody>
{% for message in message_list %}
<tr>
<td>{{ message.sender }}</td>
<td>
{{ message.subject }}
</td>
<td>{{ message.sent_at|date:_("DATETIME_FORMAT") }}</td>
<td><a href="{% url 'django_messages:messages_undelete' message.id %}">{% trans "undelete" %}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>{% trans "No messages." %}</p>
{% endif %}
<br />
<p>{% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %}</p>
{% endblock %}

35
django_messages/templates/django_messages/view.html

@ -1,35 +0,0 @@
{% extends "django_messages/base.html" %}
{% load i18n %}
{% block content %}
<h1>{% trans "View Message" %}</h1>
<dl class="message-headers">
<dt>{% trans "Subject" %}</dt>
<dd><strong>{{ message.subject }}</strong></dd>
<dt>{% trans "Sender" %}</dt>
<dd>{{ message.sender }}</dd>
<dt>{% trans "Date" %} </dt>
<dd>{{ message.sent_at|date:_("DATETIME_FORMAT")}}</dd>
<dt>{% trans "Recipient" %}</dt>
<dd>{{ message.recipient }}</dd>
</dl>
{{ message.body|linebreaksbr }}<br /><br />
{% ifequal message.recipient.pk user.pk %}
<a href="{% url 'django_messages:messages_reply' message.id %}">{% trans "Reply" %}</a>
{% endifequal %}
<a href="{% url 'django_messages:messages_delete' message.id %}">{% trans "Delete" %}</a>
{% comment %}Example reply_form integration
{% if reply_form %}
<h1>{% trans "Compose reply"%}</h1>
<form action="{% url 'messages_reply' message.id %}" method="post">
{% csrf_token %}
<table>
{{ reply_form.as_table }}
</table>
<input type="submit" value="{% trans "Send" %} &raquo;"/>
</form>
{% endif %}
{% endcomment %}
{% endblock %}

1
django_messages/templates/notification/messages_deleted/notice.html

@ -1 +0,0 @@
{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have deleted the message <a href="{{ message_url }}">{{ message }}</a>.{% endblocktrans %}

2
django_messages/templates/notification/messages_received/notice.html

@ -1,2 +0,0 @@
{% load i18n %}
{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender %}You have received the message <a href="{{ message_url }}">{{ message }}</a> from {{ message_sender }}.{% endblocktrans %}

1
django_messages/templates/notification/messages_recovered/notice.html

@ -1 +0,0 @@
{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have recovered the message <a href="{{ message_url }}">{{ message }}</a>.{% endblocktrans %}

2
django_messages/templates/notification/messages_replied/notice.html

@ -1,2 +0,0 @@
{% 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 <a href="{{ message_url }}">{{ message_parent_msg }}</a> from {{ message_recipient }}.{% endblocktrans %}

2
django_messages/templates/notification/messages_reply_received/notice.html

@ -1,2 +0,0 @@
{% 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 %}

2
django_messages/templates/notification/messages_sent/notice.html

@ -1,2 +0,0 @@
{% load i18n %}
{% blocktrans with message.get_absolute_url as message_url and message.recipient as message_recipient %}You have sent the message <a href="{{ message_url }}">{{ message }}</a> to {{ message_recipient }}.{% endblocktrans %}

0
django_messages/templatetags/__init__.py

45
django_messages/templatetags/inbox.py

@ -1,45 +0,0 @@
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)

178
django_messages/tests.py

@ -1,178 +0,0 @@
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")

15
django_messages/urls.py

@ -1,15 +0,0 @@
from django.conf.urls import url
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<recipient>[\w.@+-]+)/$', compose, name='messages_compose_to'),
url(r'^reply/(?P<message_id>[\d]+)/$', reply, name='messages_reply'),
url(r'^view/(?P<message_id>[\d]+)/$', view, name='messages_detail'),
url(r'^delete/(?P<message_id>[\d]+)/$', delete, name='messages_delete'),
url(r'^undelete/(?P<message_id>[\d]+)/$', undelete, name='messages_undelete'),
url(r'^trash/$', trash, name='messages_trash'),
]

99
django_messages/utils.py

@ -1,99 +0,0 @@
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'

231
django_messages/views.py

@ -1,231 +0,0 @@
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)

7
djing/settings_example.py

@ -42,7 +42,7 @@ INSTALLED_APPS = [
'taskapp', 'taskapp',
'clientsideapp', 'clientsideapp',
'chatbot', 'chatbot',
'django_messages',
'msg_app',
'dialing_app', 'dialing_app',
'guardian' 'guardian'
] ]
@ -72,7 +72,8 @@ TEMPLATES = [
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'taskapp.context_proc.get_active_tasks_count', 'taskapp.context_proc.get_active_tasks_count',
'global_context_processors.context_processor_additional_profile'
'global_context_processors.context_processor_additional_profile',
'msg_app.context_processors.get_new_messages_count'
], ],
}, },
}, },
@ -155,7 +156,7 @@ DATE_FORMAT = 'd E Y'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/' MEDIA_URL = '/media/'
DEFAULT_PICTURE = '/static/images/default-avatar.png'
DEFAULT_PICTURE = '/static/img/user_ava.gif'
AUTH_USER_MODEL = 'accounts_app.UserProfile' AUTH_USER_MODEL = 'accounts_app.UserProfile'
LOGIN_URL = reverse_lazy('acc_app:login') LOGIN_URL = reverse_lazy('acc_app:login')

2
djing/urls.py

@ -16,7 +16,7 @@ urlpatterns = [
url(r'^statistic/', include('statistics.urls', namespace='statistics')), url(r'^statistic/', include('statistics.urls', namespace='statistics')),
url(r'^tasks/', include('taskapp.urls', namespace='taskapp')), url(r'^tasks/', include('taskapp.urls', namespace='taskapp')),
url(r'^client/', include('clientsideapp.urls', namespace='client_side')), url(r'^client/', include('clientsideapp.urls', namespace='client_side')),
url(r'^msg/', include('django_messages.urls', namespace='django_messages')),
url(r'^msg/', include('msg_app.urls', namespace='msg_app')),
url(r'^dialing/', include('dialing_app.urls', namespace='dialapp')), url(r'^dialing/', include('dialing_app.urls', namespace='dialapp')),
url(r'^admin/', admin.site.urls) url(r'^admin/', admin.site.urls)
] ]

2
docs/install.md

@ -222,7 +222,7 @@ plugin=python3
``` ```
$ ./manage.py migrate $ ./manage.py migrate
Operations to perform: Operations to perform:
Apply all migrations: mapapp, contenttypes, dialing_app, django_messages, taskapp, photo_app, accounts_app, devapp, statistics, tariff_app, admin, sessions, chatbot, auth, abonapp
Apply all migrations: mapapp, contenttypes, dialing_app, msg_app, taskapp, photo_app, accounts_app, devapp, statistics, tariff_app, admin, sessions, chatbot, auth, abonapp
Running migrations: Running migrations:
Rendering model states... DONE Rendering model states... DONE
Applying mapapp.0001_initial... OK Applying mapapp.0001_initial... OK

0
django_messages/management/__init__.py → msg_app/__init__.py

3
msg_app/admin.py

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
msg_app/apps.py

@ -0,0 +1,5 @@
from django.apps import AppConfig
class MsgAppConfig(AppConfig):
name = 'msg_app'

9
msg_app/context_processors.py

@ -0,0 +1,9 @@
from .models import Conversation
def get_new_messages_count(request):
if request.user.is_anonymous():
count = 0
else:
count = Conversation.objects.get_new_messages_count(request.user)
return {'new_messages_count': count}

63
msg_app/forms.py

@ -0,0 +1,63 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from .models import Conversation, Message, MessageError
from accounts_app.models import UserProfile
class ConversationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ConversationForm, self).__init__(*args, **kwargs)
user_profile_queryset = UserProfile.objects.filter(is_admin=True)
if user_profile_queryset is not None:
self.fields['participants'].choices = [(up.pk, up.get_full_name()) for up in user_profile_queryset]
title = forms.CharField(max_length=32, required=False, widget=forms.TextInput(attrs={'class': 'form-control', 'maxlength': '32'}))
participants = forms.MultipleChoiceField(required=False, widget=forms.SelectMultiple(attrs={'class': 'form-control'}))
class Meta:
model = Conversation
exclude = ['date_create']
def create(self, author):
participants = self.cleaned_data['participants']
if not participants:
raise MessageError(_('you must choose at least 1 participants'))
conversation = Conversation.objects.create_conversation(
author=author, title=self.cleaned_data['title'],
other_participants=participants
)
return conversation
# must be use create()
def save(self, commit=True):
# You must use ConversationForm.create() for save the form
raise NotImplementedError
class MessageForm(forms.ModelForm):
class Meta:
model = Message
exclude = ['sent_at', 'author', 'conversation', 'account_status']
widgets = {
'text': forms.Textarea(attrs={'class': 'form-control'}),
'attachment': forms.FileInput(attrs={'class': 'form-control'})
}
def create(self, conversation, author):
if not isinstance(conversation, Conversation):
raise TypeError
if not isinstance(author, UserProfile):
raise TypeError
msg = conversation.new_message(
text=self.cleaned_data['text'],
attachment=self.cleaned_data['attachment'],
author=author
)
return msg
def save(self, commit=True):
# You must use MessageForm.create() for save the form
raise NotImplementedError

0
django_messages/management/commands/__init__.py → msg_app/migrations/__init__.py

222
msg_app/models.py

@ -0,0 +1,222 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from accounts_app.models import UserProfile
class MessageError(Exception):
pass
class MessageStatus(models.Model):
msg = models.ForeignKey('Message')
user = models.ForeignKey(UserProfile, related_name='usr_msg_status')
MESSAGE_STATES = (
('new', _('New')),
('old', _('Seen')),
('del', _('Deleted'))
)
state = models.CharField(max_length=3, choices=MESSAGE_STATES, default='new')
class Meta:
db_table = 'message_status'
unique_together = (
('msg', 'user', 'state')
)
verbose_name = _('Message status')
verbose_name_plural = _('Messages statuses')
class Message(models.Model):
text = models.TextField(_("Body"))
sent_at = models.DateTimeField(_("sent at"), auto_now_add=True)
author = models.ForeignKey(UserProfile, related_name='messages')
conversation = models.ForeignKey('Conversation', verbose_name=_('Dialog'))
attachment = models.FileField(upload_to='messages_attachments/%Y_%m_%d', blank=True, null=True)
account_status = models.ManyToManyField(UserProfile, through=MessageStatus, through_fields=('msg', 'user'))
def __str__(self):
return self.text[9:]
def _set_status(self, account, code):
try:
ms = MessageStatus.objects.get(msg=self, user=account)
if ms.status == code:
return False
ms.status = code
ms.save(update_fields=['status'])
return True
except MessageStatus.DoesNotExist:
return False
def set_status_old(self, account):
return self._set_status(account, 'old')
def set_status_del(self, account):
return self._set_status(account, 'del')
def set_status_new(self, account):
return self._set_status(account, 'new')
class Meta:
db_table = 'messages'
ordering = ['-sent_at']
verbose_name = _("Message")
verbose_name_plural = _("Messages")
permissions = (
('can_view_messages', _('Can view messages')),
)
class ConversationMembership(models.Model):
account = models.ForeignKey(UserProfile, related_name='memberships')
conversation = models.ForeignKey('Conversation')
PARTICIPANT_STATUS = (
('adm', _('Admin')),
('gst', _('Guest')),
('ban', _('Banned user')),
('inv', _('Inviter'))
)
status = models.CharField(max_length=3, choices=PARTICIPANT_STATUS, default='gst')
who_invite_that_user = models.ForeignKey(UserProfile, null=True, blank=True, related_name='self_conversations')
def __str__(self):
return "%s < %s" % (self.conversation, self.account)
class Meta:
db_table = 'conversation_memberships'
verbose_name = _("Conversation membership")
verbose_name_plural = _("Conversation memberships")
def id_to_userprofile(acc):
if isinstance(acc, UserProfile):
return acc
try:
return UserProfile.objects.get(pk=acc)
except UserProfile.DoesNotExist:
raise MessageError(_('Participant profile does not found'))
class ConversationManager(models.Manager):
def create_conversation(self, author, other_participants, title=None):
other_participants = [id_to_userprofile(acc) for acc in other_participants]
if not title:
usernames = [acc.username for acc in other_participants]
if not usernames:
title = _('No name')
else:
title = ', '.join(usernames)
conversation = self.create(title=title)
for acc in other_participants:
ConversationMembership.objects.create(
account=acc, conversation=conversation, status='adm', who_invite_that_user=author
)
ConversationMembership.objects.create(
account=author, conversation=conversation, status='inv'
)
return conversation
def get_new_messages_count(self, account):
ms_count = MessageStatus.objects.filter(user=account, state='new').count()
return ms_count
class Conversation(models.Model):
title = models.CharField(max_length=32)
participants = models.ManyToManyField(UserProfile, related_name='conversations',
through='ConversationMembership',
through_fields=('conversation', 'account'))
date_create = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
objects = ConversationManager()
def get_messages(self):
return Message.objects.filter(conversation=self).order_by('sent_at')[:10]
def get_messages_new_count(self, account):
msgs = Message.objects.filter(conversation=self)
return MessageStatus.objects.filter(user=account, msg__in=msgs, state='new').count()
def last_message(self):
messages = Message.objects.filter(conversation=self)
if messages.count() > 0:
return messages[0]
def new_message(self, text, attachment, author, with_status=True):
msg = Message.objects.create(
text=text, conversation=self, attachment=attachment, author=author
)
if with_status:
for participant in self.participants.all():
if participant == author:
continue
MessageStatus.objects.create(msg=msg, user=participant)
return msg
def get_author(self):
try:
accs = ConversationMembership.objects.filter(status='inv', conversation=self)
return accs[0].account
except IndexError:
pass
def remove_message(self, msg):
if isinstance(msg, Message):
m = msg
else:
m = Message.objects.get(pk=int(msg))
if m is None:
return False
else:
m.delete()
return True
def _make_participant_status(self, user, status, cm=None):
if cm is None:
cm = ConversationMembership.objects.get(account=user, conversation=self)
else:
if not isinstance(cm, ConversationMembership):
raise TypeError('cm must be instance of msg_app.ConversationMembership')
cm.status = status
cm.save(update_fields=['status'])
return cm
def make_participant_status_admin(self, user):
return self._make_participant_status(user, 'adm')
def make_participant_status_guest(self, user):
return self._make_participant_status(user, 'gst')
def make_participant_status_ban(self, user):
return self._make_participant_status(user, 'ban')
def make_participant_status_inviter(self, user):
return self._make_participant_status(user, 'inv')
def remove_participant(self, user):
try:
cm = ConversationMembership.objects.get(account=user, conversation=self)
cm.delete()
except ConversationMembership.DoesNotExist:
pass
def add_participant(self, author, user):
return ConversationMembership.objects.create(
account=user, conversation=self, status='gst', who_invite_that_user=author
)
def find_messages_by_text(self, text):
return Message.objects.filter(text__icontains=text, conversation=self)
class Meta:
db_table = 'conversations'
verbose_name = _("Conversation")
verbose_name_plural = _("Conversations")
permissions = (
('can_view_conversation', _('Can view conversation')),
)

82
msg_app/templates/msg_app/chat.html

@ -0,0 +1,82 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'msg_app:home' %}">{% trans 'Private messages' %}</a></li>
<li class="active">{{ conv.title }}</li>
</ol>
{% include 'message_block.html' %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{ conv.title }}
<small>2 {% trans 'peoples' %}</small>
</h3>
</div>
<div class="list-group">
{% with can_view_profile=perms.accounts_app.can_view_userprofile %}
{% for msg in msg_list %}
{% with author=msg.author %}
<div class="list-group-item">
<div class="row">
<div class="col-sm-1">
{% if can_view_profile %}
<a href="{% url 'acc_app:other_profile' author.pk %}" class="thumbnail" target="_blank" title="{{ author.get_full_name }}" data-toggle="tooltip">
<img src="{{ author.get_min_ava }}" alt="ava">
</a>
{% else %}
<img src="{{ author.get_min_ava }}" class="img-thumbnail" alt="ava">
{% endif %}
</div>
<div class="col-sm-11">
<h5>{{ author.get_short_name }}
<small>{{ msg.sent_at|date:'d M, H:i:s' }}</small>
</h5>
<p>{{ msg.text }}</p>
{% if msg.attachment %}
<a href="{{ msg.attachment }}" class="btn btn-default btn-sm" target="_blank">
<span class="glyphicon glyphicon-gift"></span> {{ msg.attachment }}
</a>
{% endif %}
</div>
</div>
</div>
{% endwith %}
{% empty %}
<div class="list-group-item">
<h4 class="list-group-item-heading">{% trans 'Message history is empty' %}</h4>
</div>
{% endfor %}
{% endwith %}
</div>
<form action="{% url 'msg_app:to_conversation' conv.pk %}" method="post"
enctype="multipart/form-data">{% csrf_token %}
<div class="panel-footer">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-comment"></span></span>
<textarea name="text" required class="form-control"></textarea>
</div>
</div>
<div class="btn-group">
<button class="btn btn-default">
<span class="glyphicon glyphicon-send"></span> {% trans 'Send' %}
</button>
<button class="btn btn-default">
<span class="glyphicon glyphicon-tag"></span> {% trans 'Attach' %}
</button>
</div>
<small>Если кто-то будет пользоваться то усовершенствую личные сообщения</small>
</div>
</form>
</div>
{% endblock %}

60
msg_app/templates/msg_app/conversations.html

@ -0,0 +1,60 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li class="active">{% trans 'Private messages' %}</li>
</ol>
{% include 'message_block.html' %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'Conversations' %}</h3>
</div>
<div class="list-group">
{% for conv in conversations %}
{% with author=conv.get_author new_count=conv.get_messages_new_count last_msg=conv.last_message %}
<a href="{% url 'msg_app:to_conversation' conv.pk %}" class="list-group-item">
<div class="row">
<div class="col-sm-1">
<img src="{{ author.get_min_ava }}" class="img-thumbnail">
</div>
<div class="col-sm-11">
{% if last_msg %}
<div class="pull-right">
<small>{{ last_msg.sent_at|date:'d M, H:i:s' }}</small>
</div>
{% endif %}
<h4>{{ conv.title }}
<small>{{ conv.participants.count }} participants{% if new_count > 0 %}, <span class="label label-primary">{{ new_count }} new</span>{% endif %}</small>
</h4>
{% if last_msg %}
<p>{{ last_msg.text }}</p>
{% else %}
<p>{% trans 'No messages found' %}</p>
{% endif %}
</div>
</div>
</a>
{% endwith %}
{% empty %}
<a href="#" class="list-group-item">
<p class="list-group-item-text">{% trans 'Any conversations not found' %}</p>
</a>
{% endfor %}
</div>
<div class="panel-footer">
<div class="btn-group">
<a href="{% url 'msg_app:new_conversation' %}" class="btn btn-default btn-modal">
<span class="glyphicon glyphicon-plus"></span> {% trans 'New' %}
</a>
</div>
</div>
</div>
{% endblock %}

33
msg_app/templates/msg_app/modal_new_conversation.html

@ -0,0 +1,33 @@
{% load i18n %}
<form role="form" action="{% url 'msg_app:new_conversation' %}" method="post">{% csrf_token %}
<div class="modal-header primary">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"><span class="glyphicon glyphicon-envelope"></span>{% trans 'Create conversation' %}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="{{ form.title.id_for_label }}">{{ form.title.label }}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-header"></span></span>
{{ form.title }}{{ form.title.errors }}
</div>
</div>
<div class="form-group">
<label for="{{ form.participants.id_for_label }}">{{ form.participants.label }}</label>
<small>{% trans 'for select multiple press ctrl and click on field' %}</small>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
{{ form.participants }}{{ form.participants.errors }}
</div>
</div>
<div class="btn-group">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-plus"></span> {% trans 'Add' %}
</button>
</div>
</div>
</form>

3
msg_app/tests.py

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

9
msg_app/urls.py

@ -0,0 +1,9 @@
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.home, name='home'),
url(r'^new$', views.new_conversation, name='new_conversation'),
url(r'^(?P<conv_id>\d+)/$', views.to_conversation, name='to_conversation')
]

52
msg_app/views.py

@ -0,0 +1,52 @@
from django.contrib.auth.decorators import login_required
from django.contrib.gis.shortcuts import render_to_text
from django.utils.translation import ugettext_lazy as _
from django.contrib import messages
from django.shortcuts import render, redirect, get_object_or_404
from .models import Conversation, MessageError
from .forms import ConversationForm, MessageForm
@login_required
def home(request):
conversations = Conversation.objects.filter(participants__in=[request.user])
return render(request, 'msg_app/conversations.html', {
'conversations': conversations
})
@login_required
def new_conversation(request):
try:
frm = ConversationForm(request.POST or None)
if request.method == 'POST' and frm.is_valid():
conv = frm.create(request.user)
messages.success(request, _('Conversation has been created'))
return redirect('msg_app:to_conversation', conv.pk)
return render_to_text('msg_app/modal_new_conversation.html', {
'form': frm
}, request=request)
except MessageError as e:
messages.error(request, e)
return redirect('msg_app:home')
@login_required
def to_conversation(request, conv_id):
conv = get_object_or_404(Conversation, pk=conv_id)
try:
if request.method == 'POST':
frm = MessageForm(request.POST, request.FILES)
if frm.is_valid():
frm.create(conv, request.user)
else:
print(frm)
messages.error(request, _('fix form errors'))
msg_list = conv.get_messages()
return render(request, 'msg_app/chat.html', {
'conv': conv,
'msg_list': msg_list
})
except MessageError as e:
messages.error(request, e)
return redirect('msg_app:home')

13
templates/base.html

@ -57,11 +57,14 @@
<span class="glyphicon glyphicon-map-marker"></span> Настройки карты <span class="glyphicon glyphicon-map-marker"></span> Настройки карты
</a></li> </a></li>
<!--{ % url 'django_messages:messages_inbox' as privmsg_home % }
<li{ % if privmsg_home in request.path %} class="active"{ % endif % }>
<a href="{ { privmsg_home } }">
<span class="glyphicon glyphicon-envelope"></span> внутренняя переписка
</a></li>-->
{% url 'msg_app:home' as privmsg_home %}
<li{% if privmsg_home in request.path %} class="active"{% endif %}>
<a href="{{ privmsg_home }}">
<span class="glyphicon glyphicon-envelope"></span> Сообщения
{% if new_messages_count > 0 %}
<span class="badge">{{ new_messages_count }}</span>
{% endif %}
</a></li>
{% if perms.dialing_app.change_asteriskcdr %} {% if perms.dialing_app.change_asteriskcdr %}
{% url 'dialapp:home' as dialhome %} {% url 'dialapp:home' as dialhome %}

Loading…
Cancel
Save