parent
9f520b7140
commit
7b6ff86a2d
237 changed files with 22974 additions and 841 deletions
@ -0,0 +1,104 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django import forms |
||||
from django.utils.translation import ugettext as _ |
||||
from models import User, Profile |
||||
from country.models import Country |
||||
|
||||
class AvatarForm(forms.ModelForm): |
||||
avatar = forms.ImageField(label=_(u'Выберите файл (GIF, JPG, PNG. Размер 100 × 100 пикселей)'), |
||||
required=False) |
||||
class Meta: |
||||
model = Profile |
||||
fields = ('avatar',) |
||||
|
||||
class NameForm(forms.ModelForm): |
||||
first_name = forms.CharField(label=_(u'Введите ваше имя')) |
||||
last_name = forms.CharField(label=_(u'Введите вашу фамилию')) |
||||
|
||||
class Meta: |
||||
model = User |
||||
fields = ('first_name', 'last_name') |
||||
|
||||
def get_full_name(self): |
||||
return u'%s %s'%(self.instance.first_name, self.instance.last_name,) |
||||
|
||||
|
||||
class HomeForm(forms.ModelForm): |
||||
city = forms.ChoiceField(label='Город', required=False) |
||||
country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), empty_label='', required=False) |
||||
class Meta: |
||||
model = Profile |
||||
fields = ('country', 'city') |
||||
|
||||
def current_country(self): |
||||
return self.instance.country |
||||
country = Country.objects.get(id=self.instance.country) |
||||
return country |
||||
|
||||
def clean_city(self): |
||||
return None |
||||
|
||||
|
||||
class WorkForm(forms.ModelForm): |
||||
position = forms.CharField(label=_(u'Укажите вашу должность'), |
||||
required=False) |
||||
work = forms.CharField(label=_(u'Место работы'), |
||||
required=False) |
||||
|
||||
class Meta: |
||||
model = Profile |
||||
fields = ('position', 'work') |
||||
|
||||
def get_full_work(self): |
||||
divider = _('в') |
||||
return 'dsfsdf' |
||||
return u'%s %s %s'%(self.instance.position, divider, self.instance.work) |
||||
|
||||
|
||||
|
||||
class AboutCompanyForm(forms.ModelForm): |
||||
about_company = forms.CharField(label=_(u'Описание компании'), required=False, |
||||
widget=forms.Textarea(attrs={'cols':'30'})) |
||||
class Meta: |
||||
model = Profile |
||||
fields = ('about_company',) |
||||
|
||||
|
||||
class PhoneForm(forms.ModelForm): |
||||
phone = forms.CharField(label=_(u'Контактный телефон'), required=False) |
||||
class Meta: |
||||
model = Profile |
||||
fields = ('phone',) |
||||
|
||||
class EmailForm(forms.ModelForm): |
||||
email = forms.EmailField(label=_(u'Ваш e-mail'), required=False) |
||||
|
||||
class Meta: |
||||
model = User |
||||
fields = ('email',) |
||||
|
||||
class WebPageForm(forms.ModelForm): |
||||
web_page = forms.CharField(label=_(u'Адрес вашего сайта'), required=False) |
||||
|
||||
class Meta: |
||||
model = User |
||||
fields = ('web_page',) |
||||
|
||||
class SocialForm(forms.ModelForm): |
||||
facebook = forms.CharField(label=_(u'Facebook'), required=False) |
||||
twitter = forms.CharField(label=_(u'Twitter'), required=False) |
||||
vk = forms.CharField(label=_(u'В контакте'), required=False) |
||||
linkedin = forms.CharField(label=_(u'LinkedIn'), required=False) |
||||
|
||||
|
||||
class Meta: |
||||
model = Profile |
||||
fields = ('facebook', 'twitter', 'vk', 'linkedin') |
||||
|
||||
class AboutForm(forms.ModelForm): |
||||
about = forms.CharField(label=_(u'Немного о себе'), required=False, |
||||
widget=forms.Textarea(attrs={'cols':'30'})) |
||||
|
||||
class Meta: |
||||
model = Profile |
||||
fields = ('about',) |
||||
@ -0,0 +1,538 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding model 'User' |
||||
db.create_table(u'accounts_user', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('password', self.gf('django.db.models.fields.CharField')(max_length=128)), |
||||
('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), |
||||
('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)), |
||||
('email', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=255, db_index=True)), |
||||
('first_name', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('last_name', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('url', self.gf('django.db.models.fields.SlugField')(max_length=50, blank=True)), |
||||
('is_active', self.gf('django.db.models.fields.BooleanField')(default=False)), |
||||
('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)), |
||||
('is_admin', self.gf('django.db.models.fields.BooleanField')(default=False)), |
||||
('date_joined', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), |
||||
('date_registered', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), |
||||
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), |
||||
('organiser', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['organiser.Organiser'], unique=True, null=True, on_delete=models.PROTECT, blank=True)), |
||||
('translator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user', null=True, on_delete=models.PROTECT, to=orm['translator.Translator'], blank=True, unique=True)), |
||||
('country', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='users', null=True, on_delete=models.PROTECT, to=orm['country.Country'])), |
||||
('city', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['city.City'], null=True, on_delete=models.PROTECT, blank=True)), |
||||
('company', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='users', null=True, on_delete=models.PROTECT, to=orm['company.Company'])), |
||||
('phone', self.gf('django.db.models.fields.BigIntegerField')(null=True, blank=True)), |
||||
('position', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), |
||||
('about', self.gf('django.db.models.fields.TextField')(blank=True)), |
||||
('avatar', self.gf('django.db.models.fields.files.ImageField')(max_length=100, blank=True)), |
||||
('web_page', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), |
||||
('social', self.gf('django.db.models.fields.TextField')(blank=True)), |
||||
('skype', self.gf('django.db.models.fields.CharField')(max_length=50, blank=True)), |
||||
('title', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), |
||||
('descriptions', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), |
||||
('keywords', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'accounts', ['User']) |
||||
|
||||
# Adding M2M table for field groups on 'User' |
||||
m2m_table_name = db.shorten_name(u'accounts_user_groups') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('user', models.ForeignKey(orm[u'accounts.user'], null=False)), |
||||
('group', models.ForeignKey(orm[u'auth.group'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['user_id', 'group_id']) |
||||
|
||||
# Adding M2M table for field user_permissions on 'User' |
||||
m2m_table_name = db.shorten_name(u'accounts_user_user_permissions') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('user', models.ForeignKey(orm[u'accounts.user'], null=False)), |
||||
('permission', models.ForeignKey(orm[u'auth.permission'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['user_id', 'permission_id']) |
||||
|
||||
# Adding model 'Calendar' |
||||
db.create_table(u'accounts_calendar', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['accounts.User'], unique=True)), |
||||
)) |
||||
db.send_create_signal(u'accounts', ['Calendar']) |
||||
|
||||
# Adding M2M table for field expositions on 'Calendar' |
||||
m2m_table_name = db.shorten_name(u'accounts_calendar_expositions') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('calendar', models.ForeignKey(orm[u'accounts.calendar'], null=False)), |
||||
('exposition', models.ForeignKey(orm[u'exposition.exposition'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['calendar_id', 'exposition_id']) |
||||
|
||||
# Adding M2M table for field conferences on 'Calendar' |
||||
m2m_table_name = db.shorten_name(u'accounts_calendar_conferences') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('calendar', models.ForeignKey(orm[u'accounts.calendar'], null=False)), |
||||
('conference', models.ForeignKey(orm[u'conference.conference'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['calendar_id', 'conference_id']) |
||||
|
||||
# Adding M2M table for field seminars on 'Calendar' |
||||
m2m_table_name = db.shorten_name(u'accounts_calendar_seminars') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('calendar', models.ForeignKey(orm[u'accounts.calendar'], null=False)), |
||||
('seminar', models.ForeignKey(orm[u'seminar.seminar'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['calendar_id', 'seminar_id']) |
||||
|
||||
# Adding M2M table for field webinars on 'Calendar' |
||||
m2m_table_name = db.shorten_name(u'accounts_calendar_webinars') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('calendar', models.ForeignKey(orm[u'accounts.calendar'], null=False)), |
||||
('webinar', models.ForeignKey(orm[u'webinar.webinar'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['calendar_id', 'webinar_id']) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting model 'User' |
||||
db.delete_table(u'accounts_user') |
||||
|
||||
# Removing M2M table for field groups on 'User' |
||||
db.delete_table(db.shorten_name(u'accounts_user_groups')) |
||||
|
||||
# Removing M2M table for field user_permissions on 'User' |
||||
db.delete_table(db.shorten_name(u'accounts_user_user_permissions')) |
||||
|
||||
# Deleting model 'Calendar' |
||||
db.delete_table(u'accounts_calendar') |
||||
|
||||
# Removing M2M table for field expositions on 'Calendar' |
||||
db.delete_table(db.shorten_name(u'accounts_calendar_expositions')) |
||||
|
||||
# Removing M2M table for field conferences on 'Calendar' |
||||
db.delete_table(db.shorten_name(u'accounts_calendar_conferences')) |
||||
|
||||
# Removing M2M table for field seminars on 'Calendar' |
||||
db.delete_table(db.shorten_name(u'accounts_calendar_seminars')) |
||||
|
||||
# Removing M2M table for field webinars on 'Calendar' |
||||
db.delete_table(db.shorten_name(u'accounts_calendar_webinars')) |
||||
|
||||
|
||||
models = { |
||||
u'accounts.calendar': { |
||||
'Meta': {'object_name': 'Calendar'}, |
||||
'conferences': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['conference.Conference']", 'null': 'True', 'symmetrical': 'False'}), |
||||
'expositions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['exposition.Exposition']", 'null': 'True', 'symmetrical': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'seminars': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['seminar.Seminar']", 'null': 'True', 'symmetrical': 'False'}), |
||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['accounts.User']", 'unique': 'True'}), |
||||
'webinars': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['webinar.Webinar']", 'null': 'True', 'symmetrical': 'False'}) |
||||
}, |
||||
u'accounts.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'avatar': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}), |
||||
'company': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'users'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['company.Company']"}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'users'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}), |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_registered': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'descriptions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_admin': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'keywords': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'organiser': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['organiser.Organiser']", 'unique': 'True', 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'position': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'skype': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'social': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'translator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['translator.Translator']", 'blank': 'True', 'unique': 'True'}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'city.city': { |
||||
'Meta': {'object_name': 'City'}, |
||||
'code_IATA': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['directories.Iata']", 'null': 'True', 'blank': 'True'}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cities'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'phone_code': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'population': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}) |
||||
}, |
||||
u'company.company': { |
||||
'Meta': {'object_name': 'Company'}, |
||||
'address': ('functions.custom_fields.LocationField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'created_company'", 'null': 'True', 'to': u"orm['accounts.User']"}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'foundation': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'social': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'staff_number': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'max_length': '50'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'conference.conference': { |
||||
'Meta': {'object_name': 'Conference'}, |
||||
'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'canceled_by_administrator': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'on_delete': 'models.PROTECT'}), |
||||
'company': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['company.Company']"}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'currency': ('functions.custom_fields.EnumField', [], {'default': "'RUB'"}), |
||||
'data_begin': ('django.db.models.fields.DateField', [], {}), |
||||
'data_end': ('django.db.models.fields.DateField', [], {}), |
||||
'discount': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'expohit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'max_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'moved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'organiser': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_organisers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['organiser.Organiser']"}), |
||||
'place': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference_place'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['place_conference.PlaceConference']"}), |
||||
'quality_label': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_tags'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}), |
||||
'tax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'conference_themes'", 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_users'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['accounts.User']"}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), |
||||
'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'country.area': { |
||||
'Meta': {'object_name': 'Area'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) |
||||
}, |
||||
u'country.country': { |
||||
'Meta': {'object_name': 'Country'}, |
||||
'area': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Area']"}), |
||||
'big_cities': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'cities'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['city.City']"}), |
||||
'capital': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'capital'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}), |
||||
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '2'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'currency': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['directories.Currency']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['directories.Language']", 'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'phone_code': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'population': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'teritory': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'time_delivery': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'timezone': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}) |
||||
}, |
||||
u'directories.currency': { |
||||
'Meta': {'object_name': 'Currency'}, |
||||
'currency': ('django.db.models.fields.CharField', [], {'max_length': '20'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) |
||||
}, |
||||
u'directories.iata': { |
||||
'Meta': {'object_name': 'Iata'}, |
||||
'airport': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '5'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) |
||||
}, |
||||
u'directories.language': { |
||||
'Meta': {'object_name': 'Language'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'exposition.exposition': { |
||||
'Meta': {'object_name': 'Exposition'}, |
||||
'application_deadline': ('django.db.models.fields.DateField', [], {'null': 'True'}), |
||||
'audience': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'canceled_by_administrator': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'on_delete': 'models.PROTECT'}), |
||||
'company': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'exposition_companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['company.Company']"}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'currency': ('functions.custom_fields.EnumField', [], {'default': "'RUB'"}), |
||||
'data_begin': ('django.db.models.fields.DateField', [], {}), |
||||
'data_end': ('django.db.models.fields.DateField', [], {}), |
||||
'discount': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'expohit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'max_closed_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'max_closed_equipped_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'max_open_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_closed_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_closed_equipped_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_open_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_stand_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'moved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'organiser': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'exposition_organisers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['organiser.Organiser']"}), |
||||
'periodic': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
||||
'place': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'exposition_place'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['place_exposition.PlaceExposition']"}), |
||||
'price_all': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'price_all_bar': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'price_catalog': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'price_day': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'price_day_bar': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'quality_label': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'registration_payment': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'exposition_tags'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}), |
||||
'tax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'exposition_themes'", 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'exposition_users'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['accounts.User']"}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'null': 'True'}), |
||||
'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'file.filemodel': { |
||||
'Meta': {'object_name': 'FileModel'}, |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']", 'null': 'True'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'file_path': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), |
||||
'file_type': ('functions.custom_fields.EnumField', [], {'default': "'PDF'", 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'img_height': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'img_width': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'purpose': ('functions.custom_fields.EnumField', [], {'default': "'photo'"}) |
||||
}, |
||||
u'organiser.organiser': { |
||||
'Meta': {'object_name': 'Organiser'}, |
||||
'address': ('functions.custom_fields.LocationField', [], {'null': 'True', 'blank': 'True'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'events_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'foundation': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'place_conference': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'organiser_place_conference'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['place_conference.PlaceConference']"}), |
||||
'place_exposition': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'organiser_place_exposition'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['place_exposition.PlaceExposition']"}), |
||||
'social': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'staff_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Tag']", 'null': 'True', 'blank': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Theme']", 'null': 'True', 'blank': 'True'}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'place_conference.placeconference': { |
||||
'Meta': {'object_name': 'PlaceConference'}, |
||||
'address': ('functions.custom_fields.LocationField', [], {}), |
||||
'amount_halls': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'banquet_hall': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'catering': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'on_delete': 'models.PROTECT'}), |
||||
'conference_call': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'exp_hall_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'exposition_hall': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'hotel': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'multimedia_equipment': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'total_capacity': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'translate_equipment': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'type': ('functions.custom_fields.EnumField', [], {'default': "'Convention centre'"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'video_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), |
||||
'web_page': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}), |
||||
'wifi': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'place_exposition.placeexposition': { |
||||
'Meta': {'ordering': "['translations__name']", 'object_name': 'PlaceExposition'}, |
||||
'address': ('functions.custom_fields.LocationField', [], {}), |
||||
'bank': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'business_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'cafe': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'children_room': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'on_delete': 'models.PROTECT'}), |
||||
'closed_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'conference_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'disabled_service': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile_application': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'online_registration': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'open_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'parking': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'press_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'terminals': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), |
||||
'total_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'total_halls': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'total_pavilions': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'type': ('functions.custom_fields.EnumField', [], {'default': "'Exposition complex'"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'video_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), |
||||
'web_page': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}), |
||||
'wifi': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'seminar.seminar': { |
||||
'Meta': {'object_name': 'Seminar'}, |
||||
'address': ('functions.custom_fields.LocationField', [], {'blank': 'True'}), |
||||
'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'canceled_by_administrator': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'on_delete': 'models.PROTECT'}), |
||||
'company': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'seminar_companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['company.Company']"}), |
||||
'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'currency': ('functions.custom_fields.EnumField', [], {'default': "'RUB'"}), |
||||
'data_begin': ('django.db.models.fields.DateTimeField', [], {}), |
||||
'data_end': ('django.db.models.fields.DateTimeField', [], {}), |
||||
'discount': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'expohit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'max_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'moved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'organiser': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'seminar_organisers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['organiser.Organiser']"}), |
||||
'quality_label': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'seminar_tags'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}), |
||||
'tax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'seminar_themes'", 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'seminar_users'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['accounts.User']"}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), |
||||
'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
}, |
||||
u'theme.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tags'", 'on_delete': 'models.PROTECT', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) |
||||
}, |
||||
u'theme.theme': { |
||||
'Meta': {'ordering': "['translations__name']", 'object_name': 'Theme'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'types': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) |
||||
}, |
||||
u'translator.translator': { |
||||
'Meta': {'object_name': 'Translator'}, |
||||
'birth': ('django.db.models.fields.DateField', [], {}), |
||||
'car': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'gender': ('functions.custom_fields.EnumField', [], {'default': "'male'"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) |
||||
}, |
||||
u'webinar.webinar': { |
||||
'Meta': {'object_name': 'Webinar'}, |
||||
'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'canceled_by_administrator': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'company': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'webinar_companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['company.Company']"}), |
||||
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'currency': ('functions.custom_fields.EnumField', [], {'default': "'RUB'"}), |
||||
'data_begin': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}), |
||||
'discount': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'expohit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'max_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'min_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'moved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'organiser': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'webinar_organisers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['organiser.Organiser']"}), |
||||
'quality_label': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), |
||||
'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'webinar_tags'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}), |
||||
'tax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'theme': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'webinar_themes'", 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}), |
||||
'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), |
||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'webinar_users'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['accounts.User']"}), |
||||
'views': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), |
||||
'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['accounts'] |
||||
@ -0,0 +1,32 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import patterns, url |
||||
from django.contrib.auth.decorators import login_required |
||||
from views import SettingsView, ProfileView, CalendarView, MessagesView |
||||
from views import NameView, HomeView, AvatarView, WorkView, AboutCompanyView, PhoneView, EmailView, WebPageView,\ |
||||
SocialView, AboutView |
||||
|
||||
from views import test |
||||
|
||||
urlpatterns = patterns('', |
||||
url(r'^profile/$', login_required(ProfileView.as_view())), |
||||
url(r'^profile/settings/$', login_required(SettingsView.as_view())), |
||||
url(r'^profile/calendar/$', login_required(CalendarView.as_view())), |
||||
#url(r'^profile/messages/(?P<user>.*)/$', login_required(MessagesView.as_view())), |
||||
#url(r'^profile/messages/$', login_required(MessagesView.as_view())), |
||||
|
||||
# |
||||
url(r'^profile/update/name/$', login_required(NameView.as_view())), |
||||
url(r'^profile/update/home/$', login_required(HomeView.as_view())), |
||||
url(r'^profile/update/avatar/$', login_required(AvatarView.as_view())), |
||||
url(r'^profile/update/work/$', login_required(WorkView.as_view())), |
||||
url(r'^profile/update/about-company/$', login_required(AboutCompanyView.as_view())), |
||||
url(r'^profile/update/phone/$', login_required(PhoneView.as_view())), |
||||
url(r'^profile/update/email/$', login_required(EmailView.as_view())), |
||||
url(r'^profile/update/web-page/$', login_required(WebPageView.as_view())), |
||||
url(r'^profile/update/social/$', login_required(SocialView.as_view())), |
||||
url(r'^profile/update/about/$', login_required(AboutView.as_view())), |
||||
# |
||||
url(r'^accounts/get/calendar/(?P<year>\d+)/(?P<month>\d+)/$', 'accounts.views.get_calendar'), |
||||
url(r'^accounts/get-tag-users/$', 'accounts.views.user_for_tag'), |
||||
|
||||
) |
||||
@ -0,0 +1,5 @@ |
||||
This file is placed here by pip to indicate the source was put |
||||
here by pip. |
||||
|
||||
Once this package is successfully installed this source code will be |
||||
deleted (unless you remove this file). |
||||
@ -0,0 +1 @@ |
||||
__author__ = 'kotzilla' |
||||
@ -0,0 +1 @@ |
||||
__author__ = 'kotzilla' |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,128 @@ |
||||
from django.core.management.base import BaseCommand, CommandError |
||||
import urllib2, base64, json |
||||
|
||||
from country.models import Country |
||||
from city.models import City |
||||
from functions.form_check import translit_with_separator |
||||
import string, random |
||||
|
||||
def random_url(): |
||||
salt = 'randomurl-' |
||||
r = ''.join(random.choice(string.ascii_lowercase) for _ in range(8)) |
||||
return salt+r |
||||
|
||||
|
||||
class Command(BaseCommand): |
||||
# booking data |
||||
b_username = 'expomap' |
||||
b_password = '33xp00m33p' |
||||
|
||||
def fill_city(self, d): |
||||
lang = d['languagecode'] |
||||
id = d['city_id'] |
||||
country_code = d['countrycode'] |
||||
name = d['name'] |
||||
|
||||
country = Country.objects.filter(country_code=country_code)[0] |
||||
|
||||
try: |
||||
|
||||
city = City.objects.get(id=id) |
||||
except City.DoesNotExist: |
||||
try: |
||||
url = translit_with_separator(name)+'-%s'%country_code |
||||
except: |
||||
url = random_url() |
||||
|
||||
city = City(country=country, id=id, url=url) |
||||
city.translate(lang) |
||||
city.name = name |
||||
try: |
||||
city.save() |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
|
||||
try: |
||||
url = translit_with_separator(name)+'-%s'%country_code |
||||
except: |
||||
url = random_url() |
||||
|
||||
city.url = url |
||||
try: |
||||
city.save() |
||||
|
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
try: |
||||
tr = City._meta.translations_model.objects.get(language_code=lang,master__id=getattr(city, 'id')) |
||||
except: |
||||
city.translate(lang) |
||||
city.name = name |
||||
try: |
||||
city.save() |
||||
return |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
tr.name = name |
||||
tr.save() |
||||
return |
||||
|
||||
|
||||
def handle(self, *args, **options): |
||||
ROWS = 1000 |
||||
|
||||
qs = Country.objects.filter() |
||||
codes = [country.country_code for country in qs] |
||||
#print(codes[86:]) |
||||
|
||||
|
||||
for code in codes[86:]:# start from 7 cause previous already filled(delete this) |
||||
offset= 0 |
||||
run = True |
||||
while(run): |
||||
url = 'https://distribution-xml.booking.com/json/bookings.getCities?countrycodes=%s&rows=%s&offset=%s&lanuagecodes=ru,en'%(code ,ROWS, offset) |
||||
request = urllib2.Request(url) |
||||
base64string = base64.encodestring('%s:%s' % (self.b_username, self.b_password)).replace('\n', '') |
||||
request.add_header("Authorization", "Basic %s" % base64string) |
||||
try: |
||||
response = urllib2.urlopen(request) |
||||
except urllib2.HTTPError, e: |
||||
continue |
||||
#raise CommandError('request failed. code error: %s'%code) |
||||
except urllib2.URLError, e: |
||||
continue |
||||
#raise CommandError('request failed. code error: %s'%code) |
||||
if response: |
||||
try: |
||||
json_list = response.read() |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n'%str(e)) |
||||
continue |
||||
else: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: bad request\n') |
||||
continue |
||||
try: |
||||
cities = json.loads(json_list) |
||||
except: |
||||
continue |
||||
|
||||
for city in cities: |
||||
if isinstance(city, dict): |
||||
self.fill_city(city) |
||||
print('city: %s, country: %s, language: %s'%(city.get('name'), city.get('countrycode'), city.get('languagecode'))) |
||||
|
||||
if len(cities) < ROWS: |
||||
run = False |
||||
else: |
||||
offset += ROWS |
||||
@ -0,0 +1,129 @@ |
||||
from django.core.management.base import BaseCommand, CommandError |
||||
import urllib2, base64, json |
||||
|
||||
from country.models import Country |
||||
from city.models import City |
||||
from functions.form_check import translit_with_separator |
||||
import string, random |
||||
|
||||
def random_url(): |
||||
salt = 'randomurl-' |
||||
r = ''.join(random.choice(string.ascii_lowercase) for _ in range(8)) |
||||
return salt+r |
||||
|
||||
|
||||
class Command(BaseCommand): |
||||
# booking data |
||||
b_username = 'expomap' |
||||
b_password = '33xp00m33p' |
||||
|
||||
def fill_city(self, d): |
||||
lang = d['languagecode'] |
||||
id = d['city_id'] |
||||
country_code = d['countrycode'] |
||||
name = d['name'] |
||||
|
||||
country = Country.objects.filter(country_code=country_code)[0] |
||||
|
||||
try: |
||||
|
||||
city = City.objects.get(id=id) |
||||
except City.DoesNotExist: |
||||
try: |
||||
url = translit_with_separator(name)+'-%s'%country_code |
||||
except: |
||||
url = random_url() |
||||
|
||||
city = City(country=country, id=id, url=url) |
||||
city.translate(lang) |
||||
city.name = name |
||||
try: |
||||
city.save() |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
|
||||
try: |
||||
url = translit_with_separator(name)+'-%s'%country_code |
||||
except: |
||||
url = random_url() |
||||
|
||||
city.url = url |
||||
try: |
||||
city.save() |
||||
|
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
try: |
||||
tr = City._meta.translations_model.objects.get(language_code=lang,master__id=getattr(city, 'id')) |
||||
except: |
||||
city.translate(lang) |
||||
city.name = name |
||||
try: |
||||
city.save() |
||||
return |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n city: %s\n'%(str(e), str(d))) |
||||
return |
||||
|
||||
tr.name = name |
||||
tr.save() |
||||
return |
||||
|
||||
|
||||
def handle(self, *args, **options): |
||||
ROWS = 1000 |
||||
|
||||
qs = Country.objects.filter() |
||||
codes = [country.country_code for country in qs] |
||||
|
||||
#print(sorted(codes, reverse=True)) |
||||
|
||||
|
||||
for code in sorted(codes, reverse=True): |
||||
offset= 0 |
||||
run = True |
||||
while(run): |
||||
url = 'https://distribution-xml.booking.com/json/bookings.getCities?countrycodes=%s&rows=%s&offset=%s&lanuagecodes=ru,en'%(code ,ROWS, offset) |
||||
request = urllib2.Request(url) |
||||
base64string = base64.encodestring('%s:%s' % (self.b_username, self.b_password)).replace('\n', '') |
||||
request.add_header("Authorization", "Basic %s" % base64string) |
||||
try: |
||||
response = urllib2.urlopen(request) |
||||
except urllib2.HTTPError, e: |
||||
continue |
||||
#raise CommandError('request failed. code error: %s'%code) |
||||
except urllib2.URLError, e: |
||||
continue |
||||
#raise CommandError('request failed. code error: %s'%code) |
||||
if response: |
||||
try: |
||||
json_list = response.read() |
||||
except Exception, e: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: %s\n'%str(e)) |
||||
continue |
||||
else: |
||||
with open('/home/kotzilla/Documents/qwer/proj/city/management/commands/errors.txt', 'a') as f: |
||||
f.write('error: bad request\n') |
||||
continue |
||||
try: |
||||
cities = json.loads(json_list) |
||||
except: |
||||
continue |
||||
|
||||
for city in cities: |
||||
if isinstance(city, dict): |
||||
self.fill_city(city) |
||||
print('city: %s, country: %s, language: %s'%(city.get('name'), city.get('countrycode'), city.get('languagecode'))) |
||||
|
||||
if len(cities) < ROWS: |
||||
run = False |
||||
else: |
||||
offset += ROWS |
||||
@ -0,0 +1,12 @@ |
||||
from haystack import indexes |
||||
from models import City |
||||
|
||||
class CityIndex(indexes.SearchIndex, indexes.Indexable): |
||||
text = indexes.CharField(document=True) |
||||
name = indexes.CharField(model_attr='name') |
||||
|
||||
def get_model(self): |
||||
return City |
||||
|
||||
def index_queryset(self, using=None): |
||||
return self.get_model().objects.all() |
||||
@ -0,0 +1,3 @@ |
||||
VERSION = (0, 5, 0,) |
||||
__version__ = '.'.join(map(str, VERSION)) |
||||
default_app_config = 'django_messages.apps.DjangoMessagesConfig' |
||||
@ -0,0 +1,112 @@ |
||||
from django import forms |
||||
from django.conf import settings |
||||
from django.utils.translation import gettext_lazy as _ |
||||
from django.contrib import admin |
||||
from django.contrib.auth.models import Group |
||||
|
||||
from django_messages.utils import get_user_model |
||||
User = get_user_model() |
||||
|
||||
if "notification" in settings.INSTALLED_APPS: |
||||
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) |
||||
@ -0,0 +1,6 @@ |
||||
from django.apps import AppConfig |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
class DjangoMessagesConfig(AppConfig): |
||||
name = 'django_messages' |
||||
verbose_name = _('Messages') |
||||
@ -0,0 +1,7 @@ |
||||
from django_messages.models import inbox_count_for |
||||
|
||||
def inbox(request): |
||||
if request.user.is_authenticated(): |
||||
return {'messages_inbox_count': inbox_count_for(request.user)} |
||||
else: |
||||
return {} |
||||
@ -0,0 +1,14 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import patterns, url |
||||
from django.contrib.auth.decorators import login_required |
||||
from expomap_views import InboxView, message_reply, MessageHistory |
||||
|
||||
|
||||
urlpatterns = patterns('', |
||||
url(r'^profile/messages/reply/(?P<message_id>[\d]+)/$', message_reply), |
||||
url(r'^profile/messages/history/(?P<user_id>[\d]+)/$', login_required(MessageHistory.as_view())), |
||||
url(r'^profile/messages/$', login_required(InboxView.as_view())), |
||||
|
||||
#url(r'^profile/messages/reply/(?P<message_id>[\d]+)/$', login_required(InboxView.as_view())), |
||||
) |
||||
|
||||
@ -0,0 +1,90 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.http import HttpResponseRedirect, HttpResponse |
||||
from django.shortcuts import render_to_response, get_object_or_404 |
||||
from django.views.generic import ListView, DetailView, TemplateView, FormView |
||||
from django.utils.translation import ugettext as _ |
||||
from django.contrib import messages |
||||
from django.db.models import Q |
||||
from django.utils import timezone |
||||
from forms import ComposeForm, ReplyForm |
||||
from models import Message |
||||
import json |
||||
|
||||
|
||||
class InboxView(TemplateView): |
||||
template_name = 'accounts/messages.html' |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
context = super(InboxView, self).get_context_data(**kwargs) |
||||
senders = Message.objects.senders(self.request.user) |
||||
context['senders'] = [{'sender': s, 'message': Message.objects.filter(recipient=self.request.user, sender=s)[0]}\ |
||||
for s in senders] |
||||
reply_form = ReplyForm() |
||||
|
||||
context['reply_form'] = reply_form |
||||
return context |
||||
|
||||
def message_reply(request, message_id): |
||||
response = {'success': False} |
||||
if request.POST: |
||||
|
||||
form = ReplyForm(request.POST) |
||||
if form.is_valid(): |
||||
parent_msg =get_object_or_404(Message, id=message_id)# Message.objects.get(id=parent) |
||||
form.save(sender=request.user, parent_msg=parent_msg) |
||||
response['success'] = True |
||||
return HttpResponse(json.dumps(response), content_type='application/json') |
||||
|
||||
else: |
||||
return HttpResponse('error') |
||||
return HttpResponse('not ajax') |
||||
|
||||
class MessageHistory(FormView): |
||||
template_name = 'accounts/messages_history.html' |
||||
form_class = ReplyForm |
||||
success_url = '' |
||||
|
||||
|
||||
def get_initial(self): |
||||
return {'recipient':self.kwargs.get('user_id')} |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
now = timezone.now() |
||||
context = super(MessageHistory, self).get_context_data(**kwargs) |
||||
user = self.kwargs.get('user_id') |
||||
messages = Message.objects.filter( |
||||
Q(sender=self.request.user, recipient=user) | |
||||
Q(sender=user, recipient=self.request.user) |
||||
)[:15] |
||||
Message.objects.filter(sender=self.request.user, recipient=user).update(read_at=now) |
||||
|
||||
context['profile_messages'] = messages |
||||
return context |
||||
|
||||
def form_invalid(self, form): |
||||
user_id = self.kwargs.get('user_id') |
||||
return HttpResponseRedirect('/profile/messages/history/'+user_id+'/') |
||||
def form_valid(self, form): |
||||
form.save(sender=self.request.user) |
||||
user_id = self.kwargs.get('user_id') |
||||
return HttpResponseRedirect('/profile/messages/history/'+user_id+'/') |
||||
|
||||
|
||||
|
||||
""" |
||||
class ReplyView(FormView): |
||||
form_class = ComposeForm |
||||
template_name = 'message_reply.html' |
||||
def form_valid(self, form): |
||||
form.save(sender=self.request.user, parent_msg=self.parent) |
||||
messages.info(self.request, _(u"Message successfully sent.")) |
||||
return HttpResponseRedirect('/profile/messages') |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
context = super(InboxView, self).get_context_data(**kwargs) |
||||
|
||||
parent = self.kwargs.get('self.message_id') |
||||
parent_msg =get_object_or_404(Message, id=parent)# Message.objects.get(id=parent) |
||||
context['parent_msg'] = parent_msg |
||||
return context |
||||
""" |
||||
@ -0,0 +1,60 @@ |
||||
""" |
||||
Based on http://www.djangosnippets.org/snippets/595/ |
||||
by sopelkin |
||||
""" |
||||
|
||||
from django import forms |
||||
from django.forms import widgets |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from django_messages.utils import get_user_model, get_username_field |
||||
|
||||
User = get_user_model() |
||||
|
||||
|
||||
class CommaSeparatedUserInput(widgets.Input): |
||||
input_type = 'text' |
||||
|
||||
def render(self, name, value, attrs=None): |
||||
if value is None: |
||||
value = '' |
||||
elif isinstance(value, (list, tuple)): |
||||
value = (', '.join([getattr(user, get_username_field()) for user in value])) |
||||
return super(CommaSeparatedUserInput, self).render(name, value, attrs) |
||||
|
||||
|
||||
|
||||
class CommaSeparatedUserField(forms.Field): |
||||
widget = CommaSeparatedUserInput |
||||
|
||||
def __init__(self, *args, **kwargs): |
||||
recipient_filter = kwargs.pop('recipient_filter', None) |
||||
self._recipient_filter = recipient_filter |
||||
super(CommaSeparatedUserField, self).__init__(*args, **kwargs) |
||||
|
||||
def clean(self, value): |
||||
super(CommaSeparatedUserField, self).clean(value) |
||||
if not value: |
||||
return '' |
||||
if isinstance(value, (list, tuple)): |
||||
return value |
||||
|
||||
names = set(value.split(',')) |
||||
names_set = set([name.strip() for name in names if name.strip()]) |
||||
users = list(User.objects.filter(**{'%s__in' % get_username_field(): names_set})) |
||||
unknown_names = names_set ^ set([getattr(user, get_username_field()) for user in users]) |
||||
|
||||
recipient_filter = self._recipient_filter |
||||
invalid_users = [] |
||||
if recipient_filter is not None: |
||||
for r in users: |
||||
if recipient_filter(r) is False: |
||||
users.remove(r) |
||||
invalid_users.append(getattr(r, get_username_field())) |
||||
|
||||
if unknown_names or invalid_users: |
||||
raise forms.ValidationError(_(u"The following usernames are incorrect: %(users)s") % {'users': ', '.join(list(unknown_names)+invalid_users)}) |
||||
|
||||
return users |
||||
|
||||
|
||||
@ -0,0 +1,87 @@ |
||||
import datetime |
||||
from django import forms |
||||
from django.conf import settings |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
if "notification" in settings.INSTALLED_APPS: |
||||
from notification import models as notification |
||||
else: |
||||
notification = None |
||||
|
||||
from django_messages.models import Message |
||||
from django_messages.fields import CommaSeparatedUserField |
||||
from accounts.models import User |
||||
|
||||
class ReplyForm(forms.Form): |
||||
recipient = forms.CharField(widget=forms.HiddenInput(), required=False) |
||||
subject = forms.CharField(label=_(u"Subject"), max_length=120, required=False) |
||||
body = forms.CharField(label=_(u"Body"), |
||||
widget=forms.Textarea(attrs={'rows': '12', 'cols':'55'})) |
||||
|
||||
def save(self, sender, parent_msg=None): |
||||
subject = self.cleaned_data['subject'] |
||||
body = self.cleaned_data['body'] |
||||
recipient = self.cleaned_data['recipient'] |
||||
msg = Message( |
||||
sender = sender, |
||||
recipient = recipient, |
||||
subject = subject, |
||||
body = body, |
||||
) |
||||
if parent_msg is not None: |
||||
msg.parent_msg = parent_msg |
||||
parent_msg.replied_at = datetime.datetime.now() |
||||
parent_msg.save() |
||||
|
||||
msg.save() |
||||
|
||||
return msg |
||||
|
||||
def clean_recipient(self): |
||||
recipient = self.cleaned_data.get('recipient') |
||||
user = User.objects.get(id=recipient) |
||||
return user |
||||
|
||||
class ComposeForm(forms.Form): |
||||
""" |
||||
A simple default form for private messages. |
||||
""" |
||||
recipient = CommaSeparatedUserField(label=_(u"Recipient")) |
||||
subject = forms.CharField(label=_(u"Subject"), max_length=120, required=False) |
||||
body = forms.CharField(label=_(u"Body"), |
||||
widget=forms.Textarea(attrs={'rows': '12', 'cols':'55'})) |
||||
|
||||
|
||||
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 = datetime.datetime.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 |
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,367 @@ |
||||
# 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." |
||||
Binary file not shown.
@ -0,0 +1,321 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# FIRST AUTHOR <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." |
||||
Binary file not shown.
@ -0,0 +1,291 @@ |
||||
# 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." |
||||
Binary file not shown.
@ -0,0 +1,314 @@ |
||||
# 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." |
||||
Binary file not shown.
@ -0,0 +1,312 @@ |
||||
# django-messages in Spanish Argentina. |
||||
# django-messages en Español Argentina. |
||||
# Copyright (C) 2008 |
||||
# This file is distributed under the same license as the django-messages package. |
||||
# Cecilia Lorena Puccinelli <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" |
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,316 @@ |
||||
# 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: 2009-09-11 12:31-0700\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" |
||||
"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:13 forms.py:20 models.py:52 templates/messages/outbox.html:7 |
||||
#: templates/messages/view.html:12 |
||||
msgid "Recipient" |
||||
msgstr "Destinataire" |
||||
|
||||
#: admin.py:38 models.py:88 |
||||
msgid "Message" |
||||
msgstr "Message" |
||||
|
||||
#: 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 "Sujet" |
||||
|
||||
#: forms.py:22 models.py:50 |
||||
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:51 templates/messages/inbox.html:7 |
||||
#: templates/messages/trash.html:7 templates/messages/view.html:8 |
||||
msgid "Sender" |
||||
msgstr "Expéditeur" |
||||
|
||||
#: models.py:53 |
||||
msgid "Parent message" |
||||
msgstr "Message parent" |
||||
|
||||
#: models.py:54 |
||||
msgid "sent at" |
||||
msgstr "envoyé à" |
||||
|
||||
#: models.py:55 |
||||
msgid "read at" |
||||
msgstr "lu à" |
||||
|
||||
#: models.py:56 |
||||
msgid "replied at" |
||||
msgstr "répondu à" |
||||
|
||||
#: models.py:57 |
||||
msgid "Sender deleted at" |
||||
msgstr "Expéditeur effacé à" |
||||
|
||||
#: models.py:58 |
||||
msgid "Recipient deleted at" |
||||
msgstr "Destinataire effacé à" |
||||
|
||||
#: models.py:89 |
||||
msgid "Messages" |
||||
msgstr "Messages" |
||||
|
||||
#: views.py:78 views.py:112 |
||||
msgid "Message successfully sent." |
||||
msgstr "Message envoyé avec succès." |
||||
|
||||
#: views.py:118 |
||||
#, python-format |
||||
msgid "" |
||||
"%(sender)s wrote:\n" |
||||
"%(body)s" |
||||
msgstr "" |
||||
"%(sender)s a écrit:\n" |
||||
"%(body)s" |
||||
|
||||
#: views.py:122 |
||||
#, python-format |
||||
msgid "Re: %(subject)s" |
||||
msgstr "Re: %(subject)s" |
||||
|
||||
#: views.py:158 |
||||
msgid "Message successfully deleted." |
||||
msgstr "Message effacé avec succès." |
||||
|
||||
#: views.py:185 |
||||
msgid "Message successfully recovered." |
||||
msgstr "Message récupéré avec succès." |
||||
|
||||
#: templates/messages/base.html:8 templates/messages/inbox.html:4 |
||||
#: templates/messages/new_message.html:10 |
||||
msgid "Inbox" |
||||
msgstr "Boîte de réception" |
||||
|
||||
#: templates/messages/base.html:9 templates/messages/outbox.html:4 |
||||
msgid "Sent Messages" |
||||
msgstr "Messages envoyés" |
||||
|
||||
#: templates/messages/base.html:10 |
||||
msgid "New Message" |
||||
msgstr "Nouveau Message" |
||||
|
||||
#: templates/messages/base.html:11 |
||||
msgid "Trash" |
||||
msgstr "Poubelle" |
||||
|
||||
#: templates/messages/compose.html:4 |
||||
msgid "Compose Message" |
||||
msgstr "Composer Message" |
||||
|
||||
#: templates/messages/compose.html:9 |
||||
msgid "Send" |
||||
msgstr "Envoyer" |
||||
|
||||
#: templates/messages/inbox.html:7 |
||||
msgid "Received" |
||||
msgstr "Reçu" |
||||
|
||||
#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 |
||||
#: templates/messages/trash.html:7 |
||||
msgid "Action" |
||||
msgstr "Action" |
||||
|
||||
#: 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 "effacer" |
||||
|
||||
#: templates/messages/new_message.html:9 |
||||
#, python-format |
||||
msgid "Sent from %(site_url)s" |
||||
msgstr "Envoyé depuis %(site_url)s" |
||||
|
||||
#: templates/messages/new_message.html:11 templates/messages/view.html:18 |
||||
msgid "Reply" |
||||
msgstr "Répondre" |
||||
|
||||
#: templates/messages/outbox.html:7 |
||||
msgid "Sent" |
||||
msgstr "Envoyé" |
||||
|
||||
#: templates/messages/trash.html:4 |
||||
msgid "Deleted Messages" |
||||
msgstr "Messages Effacés" |
||||
|
||||
#: templates/messages/trash.html:7 templates/messages/view.html:10 |
||||
msgid "Date" |
||||
msgstr "Date" |
||||
|
||||
#: templates/messages/trash.html:17 |
||||
msgid "undelete" |
||||
msgstr "restaurer" |
||||
|
||||
#: 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 "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/messages/view.html:4 |
||||
msgid "View Message" |
||||
msgstr "Voir Message" |
||||
|
||||
#: templates/messages/view.html:20 |
||||
msgid "Delete" |
||||
msgstr "Effacer" |
||||
|
||||
#: 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_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_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_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/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." |
||||
|
||||
#: 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/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 "" |
||||
"Bonjour %(recipient)s,\n" |
||||
"\n" |
||||
"vous avez reçu un message privé de %(sender)s avec\n" |
||||
"le contenu suivant :" |
||||
|
||||
#: admin.py:16 |
||||
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:15 |
||||
msgid "group" |
||||
msgstr "groupe" |
||||
|
||||
#: admin.py:23 |
||||
msgid "All users" |
||||
msgstr "Tous les utilisateurs" |
||||
|
||||
#: fields.py:53 |
||||
#, python-format |
||||
msgid "The following usernames are incorrect: %(users)s" |
||||
msgstr "Les noms d'utilisateurs suivants sont incorrects : %(users)s" |
||||
|
||||
#: admin.py:45 |
||||
msgid "Date/time" |
||||
msgstr "Date/heure" |
||||
|
||||
#: utils.py:27 |
||||
#, python-format |
||||
msgid "New Message: %(subject)s" |
||||
msgstr "Nouveau message: %(subject)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 deleted the message '%(message)s'." |
||||
#~ msgstr "Vous avez effacé le message '%(message)s'." |
||||
|
||||
#~ msgid "You have received a message from %(message_sender)s." |
||||
#~ msgstr "Vous avez reçu un message de %(message_sender)s." |
||||
|
||||
#~ msgid "You have recovered the message '%(message)s'." |
||||
#~ msgstr "vous avez récupéré le message '%(message)s'." |
||||
|
||||
#~ 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." |
||||
|
||||
#~ 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>'." |
||||
|
||||
#~ msgid "You have sent the message '%(message)s' to %(message_recipient)s." |
||||
#~ msgstr "Vous avez envoyé le message '%(message)s' à %(message_recipient)s." |
||||
Binary file not shown.
@ -0,0 +1,317 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# Sergio Morstabilini <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." |
||||
Binary file not shown.
@ -0,0 +1,292 @@ |
||||
# 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" |
||||
|
||||
Binary file not shown.
@ -0,0 +1,314 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# 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." |
||||
Binary file not shown.
@ -0,0 +1,305 @@ |
||||
# 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 "" |
||||
Binary file not shown.
@ -0,0 +1,314 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# Diego Martins <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." |
||||
Binary file not shown.
@ -0,0 +1,315 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# Michail Sychev m.sychev@axion-rti.ru, 2009 |
||||
# |
||||
#, fuzzy |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: PACKAGE VERSION\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2009-09-11 12:31-0700\n" |
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
||||
"Last-Translator: FULL NAME <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 "Получатель" |
||||
|
||||
#: admin.py:15 |
||||
msgid "group" |
||||
msgstr "Группа" |
||||
|
||||
#: admin.py:16 |
||||
msgid "Creates the message optionally for all users or a group of users." |
||||
msgstr "Создать сообщения опционально для всех пользователей или группы" |
||||
|
||||
#: admin.py:23 |
||||
msgid "All users" |
||||
msgstr "Все пользователи" |
||||
|
||||
#: admin.py:38 models.py:88 |
||||
msgid "Message" |
||||
msgstr "Сообщение" |
||||
|
||||
#: admin.py:45 |
||||
msgid "Date/time" |
||||
msgstr "Дата/Время" |
||||
|
||||
#: fields.py:53 |
||||
#, python-format |
||||
msgid "The following usernames are incorrect: %(users)s" |
||||
msgstr "Некорректные имена пользователей: %(users)s" |
||||
|
||||
#: forms.py:21 models.py:49 templates/messages/inbox.html:7 |
||||
#: templates/messages/outbox.html:7 templates/messages/trash.html:7 |
||||
#: templates/messages/view.html:6 |
||||
msgid "Subject" |
||||
msgstr "Тема" |
||||
|
||||
#: forms.py:22 models.py:50 |
||||
msgid "Body" |
||||
msgstr "Сообщение" |
||||
|
||||
#: management.py:9 |
||||
msgid "Message Received" |
||||
msgstr "Сообщение получено" |
||||
|
||||
#: management.py:9 |
||||
msgid "you have received a message" |
||||
msgstr "вы получили сообщение" |
||||
|
||||
#: management.py:10 |
||||
msgid "Message Sent" |
||||
msgstr "Сообщение отправлено" |
||||
|
||||
#: management.py:10 |
||||
msgid "you have sent a message" |
||||
msgstr "Вы отправили сообщение" |
||||
|
||||
#: management.py:11 |
||||
msgid "Message Replied" |
||||
msgstr "Сообщение отвечено" |
||||
|
||||
#: management.py:11 |
||||
msgid "you have replied to a message" |
||||
msgstr "вы ответили на сообщение" |
||||
|
||||
#: management.py:12 |
||||
msgid "Reply Received" |
||||
msgstr "Ответ получен" |
||||
|
||||
#: management.py:12 |
||||
msgid "you have received a reply to a message" |
||||
msgstr "вы получили ответ на сообщение" |
||||
|
||||
#: management.py:13 |
||||
msgid "Message Deleted" |
||||
msgstr "Сообщение удалено" |
||||
|
||||
#: management.py:13 |
||||
msgid "you have deleted a message" |
||||
msgstr "вы удалили сообщение" |
||||
|
||||
#: management.py:14 |
||||
msgid "Message Recovered" |
||||
msgstr "Сообщение восстановлено" |
||||
|
||||
#: management.py:14 |
||||
msgid "you have undeleted a message" |
||||
msgstr "вы восстановили сообщение" |
||||
|
||||
#: models.py:51 templates/messages/inbox.html:7 |
||||
#: templates/messages/trash.html:7 templates/messages/view.html:8 |
||||
msgid "Sender" |
||||
msgstr "Отправитель" |
||||
|
||||
#: models.py:53 |
||||
msgid "Parent message" |
||||
msgstr "Родительское сообщение" |
||||
|
||||
#: models.py:54 |
||||
msgid "sent at" |
||||
msgstr "отправлено" |
||||
|
||||
#: models.py:55 |
||||
msgid "read at" |
||||
msgstr "прочитано" |
||||
|
||||
#: models.py:56 |
||||
msgid "replied at" |
||||
msgstr "отвечено" |
||||
|
||||
#: models.py:57 |
||||
msgid "Sender deleted at" |
||||
msgstr "Отправитель удалил" |
||||
|
||||
#: models.py:58 |
||||
msgid "Recipient deleted at" |
||||
msgstr "Получатель удалил" |
||||
|
||||
#: models.py:89 |
||||
msgid "Messages" |
||||
msgstr "Сообщения" |
||||
|
||||
#: utils.py:27 |
||||
#, python-format |
||||
msgid "New Message: %(subject)s" |
||||
msgstr "Новое сообщение: %(subject)s" |
||||
|
||||
#: views.py:78 views.py:112 |
||||
msgid "Message successfully sent." |
||||
msgstr "Сообщение успешно отправлено." |
||||
|
||||
#: views.py:118 |
||||
#, python-format |
||||
msgid "" |
||||
"%(sender)s wrote:\n" |
||||
"%(body)s" |
||||
msgstr "" |
||||
"%(sender)s написал:\n" |
||||
"%(body)s" |
||||
|
||||
#: views.py:122 |
||||
#, python-format |
||||
msgid "Re: %(subject)s" |
||||
msgstr "Re: %(subject)s" |
||||
|
||||
#: views.py:158 |
||||
msgid "Message successfully deleted." |
||||
msgstr "Сообщение успешно удалено." |
||||
|
||||
#: views.py:185 |
||||
msgid "Message successfully recovered." |
||||
msgstr "Сообщение успешно восстановлено." |
||||
|
||||
#: templates/messages/base.html:8 templates/messages/inbox.html:4 |
||||
#: templates/messages/new_message.html:10 |
||||
msgid "Inbox" |
||||
msgstr "Входящие" |
||||
|
||||
#: templates/messages/base.html:9 templates/messages/outbox.html:4 |
||||
msgid "Sent Messages" |
||||
msgstr "Исходящие" |
||||
|
||||
#: templates/messages/base.html:10 |
||||
msgid "New Message" |
||||
msgstr "Новое сообщение" |
||||
|
||||
#: templates/messages/base.html:11 |
||||
msgid "Trash" |
||||
msgstr "Удалённые" |
||||
|
||||
#: templates/messages/compose.html:4 |
||||
msgid "Compose Message" |
||||
msgstr "Новое сообщение" |
||||
|
||||
#: templates/messages/compose.html:9 |
||||
msgid "Send" |
||||
msgstr "Отправить" |
||||
|
||||
#: templates/messages/inbox.html:7 |
||||
msgid "Received" |
||||
msgstr "Получено" |
||||
|
||||
#: templates/messages/inbox.html:7 templates/messages/outbox.html:7 |
||||
#: templates/messages/trash.html:7 |
||||
msgid "Action" |
||||
msgstr "Действия" |
||||
|
||||
#: templates/messages/inbox.html:19 templates/messages/outbox.html:16 |
||||
#: templates/messages/trash.html:16 templates/messages/view.html:11 |
||||
msgid "DATETIME_FORMAT" |
||||
msgstr "j. N Y, H:i" |
||||
|
||||
#: templates/messages/inbox.html:20 templates/messages/outbox.html:17 |
||||
msgid "delete" |
||||
msgstr "удалить" |
||||
|
||||
#: templates/messages/inbox.html:27 templates/messages/outbox.html:24 |
||||
#: templates/messages/trash.html:24 |
||||
msgid "No messages." |
||||
msgstr "Сообщений нет." |
||||
|
||||
#: templates/messages/new_message.html:1 |
||||
#, python-format |
||||
msgid "" |
||||
"Hello %(recipient)s,\n" |
||||
"\n" |
||||
"you received a private message from %(sender)s with\n" |
||||
"the following contents:" |
||||
msgstr "" |
||||
"Hallo %(recipient)s,\n" |
||||
"\n" |
||||
"Вы получили сообщение от %(sender)s\n" |
||||
"со следующим содержанием:" |
||||
|
||||
#: templates/messages/new_message.html:9 |
||||
#, python-format |
||||
msgid "Sent from %(site_url)s" |
||||
msgstr "Отправлено %(site_url)s" |
||||
|
||||
#: templates/messages/new_message.html:11 templates/messages/view.html:18 |
||||
msgid "Reply" |
||||
msgstr "Ответить" |
||||
|
||||
#: templates/messages/outbox.html:7 |
||||
msgid "Sent" |
||||
msgstr "Отправлено" |
||||
|
||||
#: templates/messages/trash.html:4 |
||||
msgid "Deleted Messages" |
||||
msgstr "Удалённые сообщения" |
||||
|
||||
#: templates/messages/trash.html:7 templates/messages/view.html:10 |
||||
msgid "Date" |
||||
msgstr "Дата" |
||||
|
||||
#: templates/messages/trash.html:17 |
||||
msgid "undelete" |
||||
msgstr "восстановить" |
||||
|
||||
#: templates/messages/trash.html:23 |
||||
msgid "" |
||||
"Deleted Messages are removed from the trash at unregular intervals, don't " |
||||
"rely on this feature for long-time storage." |
||||
msgstr "" |
||||
"Удалённые сообщения очищаются из корзины через произвольные интервалы,не " |
||||
"используйте эту возможность как долгосрочное хранилище." |
||||
|
||||
#: templates/messages/view.html:4 |
||||
msgid "View Message" |
||||
msgstr "Просмотр сообщений" |
||||
|
||||
#: templates/messages/view.html:20 |
||||
msgid "Delete" |
||||
msgstr "Удалить" |
||||
|
||||
#: templates/notification/messages_deleted/notice.html:1 |
||||
#, python-format |
||||
msgid "" |
||||
"You have deleted the message <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." |
||||
Binary file not shown.
@ -0,0 +1,299 @@ |
||||
# 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." |
||||
@ -0,0 +1,18 @@ |
||||
from django.db.models import get_models, signals |
||||
from django.conf import settings |
||||
from django.utils.translation import ugettext_noop as _ |
||||
|
||||
if "notification" in settings.INSTALLED_APPS: |
||||
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" |
||||
@ -0,0 +1,109 @@ |
||||
from django.db import models |
||||
from django.conf import settings |
||||
from django.db.models import signals |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
from django.utils import timezone |
||||
|
||||
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User') |
||||
from accounts.models import User |
||||
|
||||
class MessageManager(models.Manager): |
||||
|
||||
def senders(self, user): |
||||
users_ids = self.order_by('sender').filter(recipient=user).values_list('sender').distinct()[:10] |
||||
users_ids = [item[0] for item in users_ids] |
||||
return User.objects.filter(id__in=users_ids) |
||||
|
||||
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, |
||||
) |
||||
|
||||
|
||||
class Message(models.Model): |
||||
""" |
||||
A private message from user to user |
||||
""" |
||||
subject = models.CharField(_("Subject"), max_length=120) |
||||
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 __unicode__(self): |
||||
return self.subject |
||||
|
||||
def get_absolute_url(self): |
||||
return ('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: |
||||
from django_messages.utils import new_message_email |
||||
signals.post_save.connect(new_message_email, sender=Message) |
||||
""" |
||||
@ -0,0 +1,14 @@ |
||||
{% extends "base.html" %} |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
{% block bodyclass %}about{% endblock %} |
||||
{% block content %} |
||||
{% endblock %} |
||||
{% block sidebar %} |
||||
<ul class="subnavilist"> |
||||
<li><a href="{% url 'messages_inbox' %} ">» {% trans "Inbox" %}</a></li> |
||||
<li><a href="{% url 'messages_outbox' %} ">» {% trans "Sent Messages" %}</a></li> |
||||
<li><a href="{% url 'messages_compose' %} ">» {% trans "New Message" %}</a></li> |
||||
<li><a href="{% url 'messages_trash' %} ">» {% trans "Trash" %}</a></li> |
||||
</ul> |
||||
{% endblock %} |
||||
@ -0,0 +1,13 @@ |
||||
{% extends "django_messages/base.html" %} |
||||
{% load i18n %} |
||||
{% block content %} |
||||
<h1>{% trans "Compose Message"%}</h1> |
||||
<form action="" method="post"> |
||||
{% csrf_token %} |
||||
<table> |
||||
{{ form.as_table }} |
||||
</table> |
||||
<input type="submit" value="{% trans "Send" %} »"/> |
||||
</form> |
||||
|
||||
{% endblock %} |
||||
@ -0,0 +1,31 @@ |
||||
{% extends "django_messages/base.html" %} |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
|
||||
{% 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 'messages_delete' message.id %}">{% trans "delete" %}</a></td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
{% else %} |
||||
<p>{% trans "No messages." %}</p> |
||||
{% endif %} |
||||
{% endblock %} |
||||
@ -0,0 +1,14 @@ |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
|
||||
{% 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 'messages_inbox' %} |
||||
{% trans "Reply" %}: {{ site_url }}{% url 'messages_reply' message.pk %} |
||||
@ -0,0 +1,28 @@ |
||||
{% extends "django_messages/base.html" %} |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
|
||||
{% 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 'messages_delete' message.id %}?next={% url 'messages_outbox' %}">{% trans "delete" %}</a></td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
{% else %} |
||||
<p>{% trans "No messages." %}</p> |
||||
{% endif %} |
||||
{% endblock %} |
||||
@ -0,0 +1,30 @@ |
||||
{% extends "django_messages/base.html" %} |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
|
||||
{% 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 '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 %} |
||||
@ -0,0 +1,23 @@ |
||||
{% extends "django_messages/base.html" %} |
||||
{% load i18n %} |
||||
{% load url from future %} |
||||
|
||||
{% 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 'messages_reply' message.id %}">{% trans "Reply" %}</a> |
||||
{% endifequal %} |
||||
<a href="{% url 'messages_delete' message.id %}">{% trans "Delete" %}</a> |
||||
{% endblock %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans %}You have deleted the message '{{ message }}'.{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have deleted the message <a href="{{ message_url }}">{{ message }}</a>.{% endblocktrans %} |
||||
@ -0,0 +1,7 @@ |
||||
{% load i18n %}{% blocktrans with message.sender as message_sender and message.body|safe as message_body and message.get_absolute_url as message_url %}{{ message_sender }} has sent you a message: |
||||
|
||||
{{ message }} |
||||
|
||||
{{ message_body }} |
||||
|
||||
http://{{ current_site }}{{ message_url }}{% endblocktrans %} |
||||
@ -0,0 +1,2 @@ |
||||
{% load i18n %} |
||||
{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender %}You have received the message <a href="{{ message_url }}">{{ message }}</a> from {{ message_sender }}.{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.sender as message_sender %}{{ notice }} by {{ message_sender }}{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans %}You have recovered the message '{{ message }}'.{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.get_absolute_url as message_url %}You have recovered the message <a href="{{ message_url }}">{{ message }}</a>.{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.parent_msg as message_parent_msg and message.recipient as message_recipient %}You have replied to '{{ message_parent_msg }}' from {{ message_recipient }}.{% endblocktrans %} |
||||
@ -0,0 +1,2 @@ |
||||
{% load i18n %} |
||||
{% blocktrans with message.parent_msg.get_absolute_url as message_url and message.parent_msg as message_parent_msg and message.recipient as message_recipient %}You have replied to <a href="{{ message_url }}">{{ message_parent_msg }}</a> from {{ message_recipient }}.{% endblocktrans %} |
||||
@ -0,0 +1,7 @@ |
||||
{% load i18n %}{% blocktrans with message.sender as message_sender and message.parent_msg as message_parent_msg and message.body|safe as message_body and message.get_absolute_url as message_url %}{{ message_sender }} replied to '{{ message_parent_msg }}': |
||||
|
||||
{{ message }} |
||||
|
||||
{{ message_body }} |
||||
|
||||
http://{{ current_site }}{{ message_url }}{% endblocktrans %} |
||||
@ -0,0 +1,2 @@ |
||||
{% load i18n %} |
||||
{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender and message.parent_msg as message_parent_msg %}{{ message_sender }} has sent you a reply to {{ message_parent_msg }}.{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.sender as message_sender %}{{ notice }} by {{ message_sender }}{% endblocktrans %} |
||||
@ -0,0 +1 @@ |
||||
{% load i18n %}{% blocktrans with message.recipient as message_recipient %}You have sent the message '{{ message }}' to {{ message_recipient }}.{% endblocktrans %} |
||||
@ -0,0 +1,2 @@ |
||||
{% load i18n %} |
||||
{% blocktrans with message.get_absolute_url as message_url and message.recipient as message_recipient %}You have sent the message <a href="{{ message_url }}">{{ message }}</a> to {{ message_recipient }}.{% endblocktrans %} |
||||
@ -0,0 +1,45 @@ |
||||
from django.template import Library, Node, TemplateSyntaxError |
||||
|
||||
class InboxOutput(Node): |
||||
def __init__(self, varname=None): |
||||
self.varname = varname |
||||
|
||||
def render(self, context): |
||||
try: |
||||
user = context['user'] |
||||
count = user.received_messages.filter(read_at__isnull=True, recipient_deleted_at__isnull=True).count() |
||||
except (KeyError, AttributeError): |
||||
count = '' |
||||
if self.varname is not None: |
||||
context[self.varname] = count |
||||
return "" |
||||
else: |
||||
return "%s" % (count) |
||||
|
||||
def do_print_inbox_count(parser, token): |
||||
""" |
||||
A templatetag to show the unread-count for a logged in user. |
||||
Returns the number of unread messages in the user's inbox. |
||||
Usage:: |
||||
|
||||
{% load inbox %} |
||||
{% inbox_count %} |
||||
|
||||
{# or assign the value to a variable: #} |
||||
|
||||
{% inbox_count as my_var %} |
||||
{{ my_var }} |
||||
|
||||
""" |
||||
bits = token.contents.split() |
||||
if len(bits) > 1: |
||||
if len(bits) != 3: |
||||
raise TemplateSyntaxError, "inbox_count tag takes either no arguments or exactly two arguments" |
||||
if bits[1] != 'as': |
||||
raise TemplateSyntaxError, "first argument to inbox_count tag must be 'as'" |
||||
return InboxOutput(bits[2]) |
||||
else: |
||||
return InboxOutput() |
||||
|
||||
register = Library() |
||||
register.tag('inbox_count', do_print_inbox_count) |
||||
@ -0,0 +1,145 @@ |
||||
from django.test import TestCase |
||||
from django.test.client import Client |
||||
from django.contrib.auth.models import User |
||||
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 |
||||
|
||||
|
||||
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.assertEquals(self.msg1.sender, self.user1) |
||||
self.assertEquals(self.msg1.recipient, self.user2) |
||||
self.assertEquals(self.msg1.subject, 'Subject Text') |
||||
self.assertEquals(self.msg1.body, 'Body Text') |
||||
self.assertEquals(self.user1.sent_messages.count(), 1) |
||||
self.assertEquals(self.user1.received_messages.count(), 0) |
||||
self.assertEquals(self.user2.received_messages.count(), 1) |
||||
self.assertEquals(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.assertEquals(Message.objects.outbox_for(self.user1).count(), 1) |
||||
self.assertEquals(Message.objects.outbox_for(self.user1)[0].subject, 'Subject Text 2') |
||||
self.assertEquals(Message.objects.inbox_for(self.user2).count(),1) |
||||
self.assertEquals(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.assertEquals(Message.objects.outbox_for(self.user1).count(), 2) |
||||
self.assertEquals(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('messages_inbox')) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/inbox.html') |
||||
self.assertEquals(len(response.context['message_list']), 0) |
||||
|
||||
def testOutboxEmpty(self): |
||||
""" request the empty outbox """ |
||||
response = self.c.get(reverse('messages_outbox')) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/outbox.html') |
||||
self.assertEquals(len(response.context['message_list']), 0) |
||||
|
||||
def testTrashEmpty(self): |
||||
""" request the empty trash """ |
||||
response = self.c.get(reverse('messages_trash')) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/trash.html') |
||||
self.assertEquals(len(response.context['message_list']), 0) |
||||
|
||||
def testCompose(self): |
||||
""" compose a message step by step """ |
||||
response = self.c.get(reverse('messages_compose')) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/compose.html') |
||||
response = self.c.post(reverse('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.assertEquals(response.status_code, 302) |
||||
self.assertEquals(response['Location'], "http://testserver%s"%reverse('messages_inbox')) |
||||
|
||||
# make sure the message exists in the outbox after sending |
||||
response = self.c.get(reverse('messages_outbox')) |
||||
self.assertEquals(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('messages_inbox')) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/inbox.html') |
||||
self.assertEquals(len(response.context['message_list']), 1) |
||||
pk = getattr(response.context['message_list'][0], 'pk') |
||||
# reply to the first message |
||||
response = self.c.get(reverse('messages_reply', |
||||
kwargs={'message_id':pk})) |
||||
self.assertEquals(response.status_code, 200) |
||||
self.assertEquals(response.templates[0].name, 'django_messages/compose.html') |
||||
self.assertEquals(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.assertEquals(format_subject(u"foo bar"), u"Re: foo bar") |
||||
self.assertEquals(format_subject(u"Re: foo bar"), u"Re[2]: foo bar") |
||||
self.assertEquals(format_subject(u"Re[2]: foo bar"), u"Re[3]: foo bar") |
||||
self.assertEquals(format_subject(u"Re[10]: foo bar"), u"Re[11]: foo bar") |
||||
|
||||
|
||||
@ -0,0 +1,17 @@ |
||||
from django.conf.urls import patterns, url |
||||
from django.views.generic import RedirectView |
||||
|
||||
from django_messages.views import * |
||||
|
||||
urlpatterns = patterns('', |
||||
url(r'^$', RedirectView.as_view(url='inbox/'), name='messages_redirect'), |
||||
url(r'^inbox/$', 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'), |
||||
) |
||||
@ -0,0 +1,103 @@ |
||||
import re |
||||
import django |
||||
from django.utils.text import wrap |
||||
from django.utils.translation import ugettext, ugettext_lazy as _ |
||||
from django.contrib.sites.models import Site |
||||
from django.template.loader import render_to_string |
||||
from django.conf import settings |
||||
|
||||
# favour django-mailer but fall back to django.core.mail |
||||
|
||||
if "mailer" in settings.INSTALLED_APPS: |
||||
from mailer import send_mail |
||||
else: |
||||
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 = Site.objects.get_current().domain |
||||
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, 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' |
||||
@ -0,0 +1,211 @@ |
||||
from django.http import Http404, HttpResponseRedirect |
||||
from django.shortcuts import render_to_response, get_object_or_404 |
||||
from django.template import RequestContext |
||||
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: |
||||
from notification import models as notification |
||||
else: |
||||
notification = None |
||||
|
||||
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_to_response(template_name, { |
||||
'message_list': message_list, |
||||
}, context_instance=RequestContext(request)) |
||||
inbox = login_required(inbox) |
||||
|
||||
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_to_response(template_name, { |
||||
'message_list': message_list, |
||||
}, context_instance=RequestContext(request)) |
||||
outbox = login_required(outbox) |
||||
|
||||
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_to_response(template_name, { |
||||
'message_list': message_list, |
||||
}, context_instance=RequestContext(request)) |
||||
trash = login_required(trash) |
||||
|
||||
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 |
||||
""" |
||||
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) |
||||
messages.info(request, _(u"Message successfully sent.")) |
||||
if success_url is None: |
||||
success_url = reverse('messages_inbox') |
||||
if 'next' in request.GET: |
||||
success_url = request.GET['next'] |
||||
return HttpResponseRedirect(success_url) |
||||
else: |
||||
form = form_class() |
||||
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_to_response(template_name, { |
||||
'form': form, |
||||
}, context_instance=RequestContext(request)) |
||||
compose = login_required(compose) |
||||
|
||||
def reply(request, message_id, form_class=ComposeForm, |
||||
template_name='django_messages/compose.html', success_url=None, |
||||
recipient_filter=None, quote_helper=format_quote): |
||||
""" |
||||
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('messages_inbox') |
||||
return HttpResponseRedirect(success_url) |
||||
else: |
||||
form = form_class(initial={ |
||||
'body': quote_helper(parent.sender, parent.body), |
||||
'subject': _(u"Re: %(subject)s") % {'subject': parent.subject}, |
||||
'recipient': [parent.sender,] |
||||
}) |
||||
return render_to_response(template_name, { |
||||
'form': form, |
||||
}, context_instance=RequestContext(request)) |
||||
reply = login_required(reply) |
||||
|
||||
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('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 |
||||
delete = login_required(delete) |
||||
|
||||
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('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 |
||||
undelete = login_required(undelete) |
||||
|
||||
def view(request, message_id, 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. |
||||
""" |
||||
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() |
||||
return render_to_response(template_name, { |
||||
'message': message, |
||||
}, context_instance=RequestContext(request)) |
||||
view = login_required(view) |
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue