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