diff --git a/accounts/admin.py b/accounts/admin.py index fd3ac63f..ac23916f 100644 --- a/accounts/admin.py +++ b/accounts/admin.py @@ -198,7 +198,7 @@ def change_password(request): #user.set_password(form.cleaned_data.get('new_password')) #user.save() success['success'] = True - success['message'] = _(u'Пароль именен') + success['message'] = _(u'Пароль изменен') return HttpResponse(json.dumps(success), content_type='application/json') else: errors = {'errors': [_(u'Не правильный пароль')]} diff --git a/accounts/edit_forms.py b/accounts/edit_forms.py index cb687a90..320935a1 100644 --- a/accounts/edit_forms.py +++ b/accounts/edit_forms.py @@ -30,7 +30,7 @@ class NameForm(forms.ModelForm): class HomeForm(forms.ModelForm): - city = forms.CharField(label='Город', required=False, + city = forms.CharField(label=_(u'Город'), required=False, widget=forms.HiddenInput(attrs={'class': 'select2'})) country = forms.ChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()], required=False, widget=forms.Select(attrs={'class': 'select2'})) @@ -150,4 +150,4 @@ class AboutForm(forms.ModelForm): class Meta: model = Profile - fields = ('about',) \ No newline at end of file + fields = ('about',) diff --git a/accounts/forms.py b/accounts/forms.py index d47d65c3..36da7fc9 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -27,8 +27,8 @@ def clean_relation_field(inst, field_name, model): class UserCreationForm(forms.ModelForm): - password1 = forms.CharField(label='Пароль', widget=forms.PasswordInput(render_value=False)) - password2 = forms.CharField(label='Повторите пароль', widget=forms.PasswordInput(render_value=False)) + password1 = forms.CharField(label=_(u'Пароль'), widget=forms.PasswordInput(render_value=False)) + password2 = forms.CharField(label=_(u'Повторите пароль'), widget=forms.PasswordInput(render_value=False)) class Meta: model = User @@ -43,14 +43,14 @@ class UserCreationForm(forms.ModelForm): User.objects.get(email=email) except User.DoesNotExist: return email - raise forms.ValidationError('Пользователь с таким email уже существует') + raise forms.ValidationError(_(u'Пользователь с таким email уже существует')) def clean_password2(self): password1 = self.cleaned_data.get('password1') password2 = self.cleaned_data.get('password2') if password1 and password2 and password1 != password2: - raise forms.ValidationError('Пароли не совпадают') + raise forms.ValidationError(_(u'Пароли не совпадают')) return password2 def save(self, commit=True): @@ -65,10 +65,10 @@ class UserCreationForm(forms.ModelForm): class UserForm(forms.ModelForm): # email = forms.EmailField(widget=forms.TextInput(attrs={'disabled' : True}), required=False) - country = forms.ChoiceField(label='Страна', choices=[(item.id, item.name) for item in Country.objects.language().all()], + country = forms.ChoiceField(label=_(u'Страна'), choices=[(item.id, item.name) for item in Country.objects.language().all()], required=False) - city = forms.CharField(label='Город', widget=forms.HiddenInput(), required=False) - company = forms.ChoiceField(label='Компания', + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput(), required=False) + company = forms.ChoiceField(label=_(u'Компания'), choices=[(item.id, item.name) for item in Company.objects.language().all()], required=False) @@ -149,7 +149,7 @@ class UserForm(forms.ModelForm): if phone.isdigit(): return phone else: - raise forms.ValidationError('Введите правильный код страны') + raise forms.ValidationError(_(u'Введите правильный код страны')) class ChangePasswordForm(forms.Form): @@ -201,9 +201,9 @@ class EmailAnnouncementForm(forms.Form): class RegistrationCompleteForm(forms.ModelForm): - country = forms.ModelChoiceField(label='Страна', queryset=Country.objects.all(), + country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), widget=forms.Select(attrs={'class': 'select2'})) - city = forms.CharField(label='Город', widget=forms.HiddenInput()) + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) url = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'url(обязательно)')})) # code_country = forms.ChoiceField(label=_(u'код страны'), initial='70', diff --git a/accounts/models.py b/accounts/models.py index 413b9560..a49485c7 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -22,7 +22,7 @@ class UserManager(BaseUserManager): def create_user(self, email, first_name, last_name, password=None, **extra_fields): now = timezone.now() if not email: - raise ValueError('Вы должни ввести электронную почту') + raise ValueError(_(u'Вы должни ввести электронную почту')) user = self.model( email=UserManager.normalize_email(email), @@ -38,7 +38,7 @@ class UserManager(BaseUserManager): def create_superuser(self, username, first_name, last_name, password, **extra_fields): if not username: - raise ValueError('Вы должни ввести электронную почту') + raise ValueError(_(u'Вы должни ввести электронную почту')) username = UserManager.normalize_email(username) @@ -82,7 +82,7 @@ class User(AbstractBaseUser, PermissionsMixin, GetURLorPK): #unique = True, db_index=True, ) - username = models.CharField(verbose_name='Email', max_length=255, unique=True, db_index=True) + username = models.CharField(verbose_name=_(u'Email'), max_length=255, unique=True, db_index=True) first_name = models.CharField(verbose_name=_(u'First name'), max_length=255) last_name = models.CharField(verbose_name=_(u'Last name'), max_length=255) rating = models.IntegerField(verbose_name=_(u'Рейтинг'), default=100)# добавить индекс в базе @@ -94,15 +94,15 @@ class User(AbstractBaseUser, PermissionsMixin, GetURLorPK): date_registered = models.DateTimeField(verbose_name=_(u'Дата регистрации'), blank=True, null=True) date_modified = models.DateTimeField(verbose_name=_(u'Изменен'), auto_now=True) #relations - organiser = models.ForeignKey('organiser.Organiser', verbose_name='Организатор', blank=True, null=True, + organiser = models.ForeignKey('organiser.Organiser', verbose_name=_(u'Организатор'), blank=True, null=True, unique=True, on_delete=models.PROTECT) - translator = models.ForeignKey('translator.Translator', verbose_name='Переводчик', blank=True, null=True, + translator = models.ForeignKey('translator.Translator', verbose_name=_(u'Переводчик'), blank=True, null=True, unique=True, on_delete=models.PROTECT, related_name='user') company = models.ForeignKey('company.Company', verbose_name=_(u'Компания'), blank=True, null=True, related_name='users') - position = models.CharField(verbose_name='Должность', max_length=255, blank=True) + position = models.CharField(verbose_name=_(u'Должность'), max_length=255, blank=True) blocked = models.BooleanField(verbose_name=_(u'Заблокирован?'), default=False) objects = UserManager() diff --git a/article/admin.py b/article/admin.py index 70698ca5..bd780402 100644 --- a/article/admin.py +++ b/article/admin.py @@ -15,6 +15,7 @@ from file.forms import FileModelForm, FileForm #custom views from functions.custom_views import objects_list, add_object_with_file, delete_object from functions.views_help import get_referer +from django.utils.translation import ugettext_lazy as _ class ArticleDeleteView(DeleteView): diff --git a/article/forms.py b/article/forms.py index 9fc5304c..52b4f190 100644 --- a/article/forms.py +++ b/article/forms.py @@ -16,12 +16,12 @@ from conference.models import Conference class _BlogForm(forms.Form): type = Article.blog - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=ThemeBlog.objects.all(), required=False, + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=ThemeBlog.objects.all(), required=False, widget=forms.SelectMultiple(attrs={'style':'width: 550px'})) - slug = forms.SlugField(label=u'URL', max_length=255, min_length=1, required=False) - publish_date = forms.DateField(label=u'Дата публикации', input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False) - tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) - logo = forms.ImageField(label=u'Лого', required=False) + slug = forms.SlugField(label=_(u'URL'), max_length=255, min_length=1, required=False) + publish_date = forms.DateField(label=_(u'Дата публикации'), input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False) + tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(), required=False) + logo = forms.ImageField(label=_(u'Лого'), required=False) def __init__(self, *args, **kwargs): """ @@ -35,15 +35,15 @@ class _BlogForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['main_title_%s' % code] = forms.CharField(label='Заголовок', required=required) - self.fields['preview_%s' % code] = forms.CharField(label='Превью', required=False, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required) + self.fields['preview_%s' % code] = forms.CharField(label=_(u'Превью'), required=False, widget=CKEditorWidget) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, author, article=None, commit=True): @@ -107,9 +107,9 @@ class BlogForm(_BlogForm): class NewsForm(_BlogForm): type = Article.news - exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput(), required=False) - conference = forms.CharField(label=u'Конференция', widget=forms.HiddenInput(), required=False) - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all(), required=False, + exposition = forms.CharField(label=_(u'Выставка'), widget=forms.HiddenInput(), required=False) + conference = forms.CharField(label=_(u'Конференция'), widget=forms.HiddenInput(), required=False) + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all(), required=False, widget=forms.SelectMultiple(attrs={'style':'width: 550px'})) def save(self, author, article=None): @@ -151,12 +151,12 @@ class ArticleForm(forms.Form): save function saves data in Article object. If it doesnt exist create new object """ #users that have organiser profile - author = forms.ModelChoiceField(label='Автор',queryset=User.objects.exclude(organiser__isnull=True)) + author = forms.ModelChoiceField(label=_(u'Автор'),queryset=User.objects.exclude(organiser__isnull=True)) key = forms.CharField(required=False, widget=forms.HiddenInput()) - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all()) + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all()) #creates select input with empty choices cause it will be filled with ajax - tag = forms.MultipleChoiceField(label='Теги', required=False) + tag = forms.MultipleChoiceField(label=_(u'Теги'), required=False) article_id = forms.CharField(required=False, widget=forms.HiddenInput()) @@ -172,15 +172,15 @@ class ArticleForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['main_title_%s' % code] = forms.CharField(label='Заголовок', required=required) - self.fields['preview_%s' % code] = forms.CharField(label='Превью', required=required, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=required, widget=CKEditorWidget) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required) + self.fields['preview_%s' % code] = forms.CharField(label=_(u'Превью'), required=required, widget=CKEditorWidget) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=required, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, id=None): @@ -229,7 +229,7 @@ class ArticleForm(forms.Form): article = Article.objects.filter(url=translit_with_separator(main_title_ru)) if article and str(article[0].id) != id: - msg = 'Статья с таким названием уже существует' + msg = _(u'Статья с таким названием уже существует') self._errors['main_title_ru'] = ErrorList([msg]) del self.cleaned_data['main_title_ru'] diff --git a/city/admin.py b/city/admin.py index b2642e36..753c81b3 100644 --- a/city/admin.py +++ b/city/admin.py @@ -13,6 +13,7 @@ from file.forms import FileModelForm #custom views from functions.custom_views import objects_list, add_object_with_file, delete_object from functions.admin_views import AdminListView +from django.utils.translation import ugettext_lazy as _ def city_all(request): @@ -110,4 +111,4 @@ def search_city(request): class CityListView(AdminListView): template_name = 'admin/city/city_list.html' form_class = CityFilterForm - model = City \ No newline at end of file + model = City diff --git a/city/forms.py b/city/forms.py index 8843c223..82251063 100644 --- a/city/forms.py +++ b/city/forms.py @@ -14,6 +14,7 @@ from functions.translate import fill_with_signal from functions.form_check import is_positive_integer, translit_with_separator from functions.files import check_tmp_files from functions.admin_forms import AdminFilterForm +from django.utils.translation import ugettext_lazy as _ class CityForm(forms.Form): @@ -25,16 +26,16 @@ class CityForm(forms.Form): save function saves data in City object. If it doesnt exist create new object """ - country = forms.ModelChoiceField(label='Страна', + country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.filter(translations__language_code=lang()).order_by('translations__name'), empty_label=None) - population = forms.CharField(label='Население', required=False, - widget=forms.TextInput(attrs={'placeholder':'Население'})) - phone_code = forms.CharField(label='Код города', required=False, - widget=forms.TextInput(attrs={'placeholder':'Код города'})) - code_IATA = forms.ModelChoiceField(label='Код IATA', queryset=Iata.objects.all(), empty_label=None, required=False) - inflect = forms.CharField(label='Inflect', required=False) - logo = forms.ImageField(label='Logo', required=False) + population = forms.CharField(label=_(u'Население'), required=False, + widget=forms.TextInput(attrs={'placeholder':_(u'Население')})) + phone_code = forms.CharField(label=_(u'Код города'), required=False, + widget=forms.TextInput(attrs={'placeholder':_(u'Код города')})) + code_IATA = forms.ModelChoiceField(label=_(u'Код IATA'), queryset=Iata.objects.all(), empty_label=None, required=False) + inflect = forms.CharField(label=_(u'Inflect'), required=False) + logo = forms.ImageField(label=_(u'Logo'), required=False) #field for comparing tmp files key = forms.CharField(required=False, widget=forms.HiddenInput()) # @@ -53,20 +54,20 @@ class CityForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['region_%s' % code] = forms.CharField(label='Регион', required=False) - self.fields['description_%s' % code] = forms.CharField(label='Описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['region_%s' % code] = forms.CharField(label=_(u'Регион'), required=False) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['famous_places_%s' % code] = forms.CharField(label='Знаменитые места', + self.fields['famous_places_%s' % code] = forms.CharField(label=_(u'Знаменитые места'), required=False, widget=CKEditorWidget()) - self.fields['shoping_%s' % code] = forms.CharField(label='Шопинг', required=False, widget=CKEditorWidget()) - self.fields['transport_%s' % code] = forms.CharField(label='Транспорт', required=False, widget=CKEditorWidget()) + self.fields['shoping_%s' % code] = forms.CharField(label=_(u'Шопинг'), required=False, widget=CKEditorWidget()) + self.fields['transport_%s' % code] = forms.CharField(label=_(u'Транспорт'), required=False, widget=CKEditorWidget()) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -148,7 +149,7 @@ class CityForm(forms.Form): if phone_code.isdigit(): return phone_code else: - raise ValidationError('Введите правильный телефонный код') + raise ValidationError(_(u'Введите правильный телефонный код')) def clean_population(self): """ @@ -168,7 +169,7 @@ class CityDeleteForm(forms.ModelForm): class CityFilterForm(AdminFilterForm): country = forms.ChoiceField(choices=[('', '')]+[(item.id, item.name) for item in Country.objects.all()], required=False, - label='Страна') + label=_(u'Страна')) model = City def filter(self): diff --git a/city/models.py b/city/models.py index db53599e..749facc0 100644 --- a/city/models.py +++ b/city/models.py @@ -28,7 +28,7 @@ class City(TranslatableModel): catalog = '/city/' services = BitField(flags=flags) url = models.SlugField(verbose_name=_(u'Url'), unique=True) - logo = models.ImageField(verbose_name='Logo', upload_to='city/logo/', blank=True, max_length=255) + logo = models.ImageField(verbose_name=_(u'Logo'), upload_to='city/logo/', blank=True, max_length=255) old_url = models.CharField(verbose_name=_(u'Url старой бд'), max_length=55) # inflect name for russian language. example- в Москве inflect = models.CharField(verbose_name=_(u'Склонение'), max_length=255, blank=True) @@ -145,4 +145,4 @@ class Hotel(TranslatableModel): pre_save.connect(pre_save_handler, sender=City) post_save.connect(post_save_handler, sender=City) -post_save.connect(post_save_handler, sender=Hotel) \ No newline at end of file +post_save.connect(post_save_handler, sender=Hotel) diff --git a/city/search_indexes.py b/city/search_indexes.py index 8d54a854..e931270a 100644 --- a/city/search_indexes.py +++ b/city/search_indexes.py @@ -33,4 +33,4 @@ class CountryIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): return self.get_model().used.all() def get_updated_field(self): - return 'modified' \ No newline at end of file + return 'modified' diff --git a/company/admin.py b/company/admin.py index 525d0e23..c6c866d0 100644 --- a/company/admin.py +++ b/company/admin.py @@ -16,6 +16,7 @@ from functions.custom_views import (add_object_with_file, delete_object, # models and forms from models import Company from theme.models import Tag +from django.utils.translation import ugettext_lazy as _ def company_all(request): diff --git a/company/forms.py b/company/forms.py index ad2ff764..3c6f5d4e 100644 --- a/company/forms.py +++ b/company/forms.py @@ -27,30 +27,30 @@ class CompanyForm(forms.Form): save function saves data in Company object. If it doesnt exist create new object """ - url = forms.CharField(label='URL', widget=forms.TextInput(attrs={'placeholder': 'Введите URL'})) + url = forms.CharField(label=_(u'URL'), widget=forms.TextInput(attrs={'placeholder': _(u'Введите URL')})) - country = forms.ModelChoiceField(label='Страна', queryset=Country.objects.all(), empty_label=None) - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all()) + country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), empty_label=None) + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all()) #creates select input with empty choices cause it will be filled with ajax - city = forms.ChoiceField(label='Город', choices=[('','')]) - tag = forms.MultipleChoiceField(label='Теги', required=False) + city = forms.ChoiceField(label=_(u'Город'), choices=[('','')]) + tag = forms.MultipleChoiceField(label=_(u'Теги'), required=False) - staff_number = forms.CharField(label='Количество сотрудников', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Количество сотрудников'})) + staff_number = forms.CharField(label=_(u'Количество сотрудников'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Количество сотрудников')})) #uses locationwidget - address = forms.CharField(label='Адрес', required=False, widget=LocationWidget) + address = forms.CharField(label=_(u'Адрес'), required=False, widget=LocationWidget) - phone = forms.CharField(label='Телефон', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите телефон'})) + phone = forms.CharField(label=_(u'Телефон'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите телефон')})) fax = forms.CharField(label='Факс', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите факс'})) - web_page = forms.CharField(label='Веб-сайт', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите адрес сайта'})) - email = forms.CharField(label='Email', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите email'})) - social = forms.CharField(label='Социальные страници', required=False) - foundation = forms.CharField(label='Год основания', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Год основания'})) + widget=forms.TextInput(attrs={'placeholder': _(u'Введите факс')})) + web_page = forms.CharField(label=_(u'Веб-сайт'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите адрес сайта')})) + email = forms.CharField(label=_(u'Email'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите email')})) + social = forms.CharField(label=_(u'Социальные страници'), required=False) + foundation = forms.CharField(label=_(u'Год основания'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Год основания')})) #field for comparing tmp files key = forms.CharField(required=False, widget=forms.HiddenInput()) # @@ -69,18 +69,18 @@ class CompanyForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['description_%s' % code] = forms.CharField(label='Описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['specialization_%s' % code] = forms.CharField(label='Специализация', required=False) - self.fields['address_inf_%s' % code] = forms.CharField(label='Доп инф по адресу', + self.fields['specialization_%s' % code] = forms.CharField(label=_(u'Специализация'), required=False) + self.fields['address_inf_%s' % code] = forms.CharField(label=_(u'Доп инф по адресу'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -139,7 +139,7 @@ class CompanyForm(forms.Form): company = Company.objects.filter(url=translit_with_separator(url)) if company and str(company[0].id) != id: - msg = 'Такой урл уже занят' + msg = _(u'Такой урл уже занят') self._errors['url'] = ErrorList([msg]) del self.cleaned_data['url'] @@ -184,7 +184,7 @@ class CompanyForm(forms.Form): if phone.isdigit(): return phone else: - raise ValidationError('Введите правильный телефон') + raise ValidationError(_(u'Введите правильный телефон')) def clean_fax(self): """ @@ -203,7 +203,8 @@ class CompanyForm(forms.Form): if fax.isdigit(): return fax else: - raise ValidationError('Введите правильный факс') + raise ValidationError(_(u'Введите правильный факс')) + class CompanyDeleteForm(forms.ModelForm): id = forms.CharField(widget=forms.HiddenInput()) @@ -212,6 +213,7 @@ class CompanyDeleteForm(forms.ModelForm): model = Company fields = ('id',) + class CompanyFormClient(forms.Form): # translated fields @@ -224,18 +226,18 @@ class CompanyFormClient(forms.Form): country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), empty_label=None) city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all()) - tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) + tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(), required=False) - phone = forms.CharField(label='Телефон', required=False) - fax = forms.CharField(label='Факс', required=False) - web_page = forms.URLField(label='Веб-сайт', required=False) - email = forms.EmailField(label='Email', required=False) + phone = forms.CharField(label=_(u'Телефон'), required=False) + fax = forms.CharField(label=_(u'Факс'), required=False) + web_page = forms.URLField(label=_(u'Веб-сайт'), required=False) + email = forms.EmailField(label=_(u'Email'), required=False) foundation = forms.IntegerField(label=_(u'Год основания'), required=False) staff_number = forms.IntegerField(label=_(u'Количество сотрудников'), required=False) vk = forms.URLField(label=_(u'в контакте'), required=False) - twitter = forms.URLField(label=u'Twitter', required=False) - facebook = forms.URLField(label=u'Facebook', required=False) - linkedin = forms.URLField(label=u'Linkedin', required=False) + twitter = forms.URLField(label=_(u'Twitter'), required=False) + facebook = forms.URLField(label=_(u'Facebook'), required=False) + linkedin = forms.URLField(label=_(u'Linkedin'), required=False) def __init__(self, *args, **kwargs): @@ -279,7 +281,6 @@ class CreateCompanyForm(forms.Form): return company - def clean_url(self): url = self.cleaned_data['url'] url = url.replace('http://expomap.ru/members/', '') @@ -296,4 +297,4 @@ class CreateCompanyForm(forms.Form): return translit_with_separator(url) class CompanyFilterForm(AdminFilterForm): - model = Company \ No newline at end of file + model = Company diff --git a/company/models.py b/company/models.py index 81e5f3d0..89487958 100644 --- a/company/models.py +++ b/company/models.py @@ -32,34 +32,34 @@ class Company(TranslatableModel, ExpoMixin, GetURLorPK): url = models.SlugField(max_length=255) #relations - creator = models.ForeignKey('accounts.User', verbose_name='Создатель', related_name='created_company', + creator = models.ForeignKey('accounts.User', verbose_name=_(u'Создатель'), related_name='created_company', blank=True, null=True) - theme = models.ManyToManyField('theme.Theme', verbose_name='Отрасль', + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Отрасль'), blank=True, null=True, related_name='companies') - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', blank=True, null=True, related_name='companies') - country = models.ForeignKey('country.Country', verbose_name='Страна', blank=True, null=True, + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True, related_name='companies') + country = models.ForeignKey('country.Country', verbose_name=_(u'Страна'), blank=True, null=True, on_delete=models.PROTECT, related_name='companies') - city = models.ForeignKey('city.City', verbose_name='Город', blank=True, null=True, + city = models.ForeignKey('city.City', verbose_name=_(u'Город'), blank=True, null=True, on_delete=models.PROTECT, related_name='companies') #address. uses LocationField. saves data in json format address = LocationField(verbose_name='Адрес', blank=True) - staff_number = models.CharField(verbose_name='Количество сотрудников', max_length=50, blank=True) - phone = models.BigIntegerField(verbose_name='Телефон', blank=True, null=True) - fax = models.BigIntegerField(verbose_name='Факс', blank=True, null=True) - web_page = models.CharField(verbose_name='Веб-сайт',max_length=255, blank=True) - email = models.EmailField(verbose_name='Email', blank=True) + staff_number = models.CharField(verbose_name=_(u'Количество сотрудников'), max_length=50, blank=True) + phone = models.BigIntegerField(verbose_name=_(u'Телефон'), blank=True, null=True) + fax = models.BigIntegerField(verbose_name=_(u'Факс'), blank=True, null=True) + web_page = models.CharField(verbose_name=_(u'Веб-сайт'),max_length=255, blank=True) + email = models.EmailField(verbose_name=_(u'Email'), blank=True) facebook = models.URLField(verbose_name=_(u'Facebook'), blank=True) twitter = models.URLField(verbose_name=_(u'Twitter'), blank=True) linkedin = models.URLField(verbose_name=_(u'LinkedIn'), blank=True) vk = models.URLField(verbose_name=_(u'В контакте'), blank=True) - foundation = models.PositiveIntegerField(verbose_name='Год основания', blank=True, null=True) + foundation = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True) #translation fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название компании', max_length=255), - specialization = models.CharField(verbose_name='Специализация', max_length=255, blank=True), - description = models.TextField(verbose_name='О компании', blank=True), - address_inf = models.TextField(verbose_name='Доп инф по адресу', blank=True), + name = models.CharField(verbose_name=_(u'Название компании'), max_length=255), + specialization = models.CharField(verbose_name=_(u'Специализация'), max_length=255, blank=True), + description = models.TextField(verbose_name=_(u'О компании'), blank=True), + address_inf = models.TextField(verbose_name=_(u'Доп инф по адресу'), blank=True), #-----meta title = models.CharField(max_length=255), descriptions = models.CharField(max_length=255), diff --git a/conference/forms.py b/conference/forms.py index 49a48de8..685db687 100644 --- a/conference/forms.py +++ b/conference/forms.py @@ -4,6 +4,7 @@ from django.conf import settings from ckeditor.widgets import CKEditorWidget from django.forms.util import ErrorList from django.core.validators import validate_email, URLValidator +from django.utils.translation import ugettext as _ #models from models import Conference, TimeTable, CURRENCY, Statistic, BIT_AUDIENCE from country.models import Country @@ -34,51 +35,51 @@ class ConferenceCreateForm(forms.Form): save function saves data in Conference object. If it doesnt exist create new object """ - PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), - (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'), - (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет')) + PERIODIC = ((0, _(u'Не выбрано')), (1.0, _(u'Ежегодно')), (2.0, _(u'2 раза в год')), (3.0, _(u'3 раза в год')), + (4.0, _(u'4 раза в год')), (5.0, _(u'5 раз в год')), (0.5, _(u'Раз в 2 года')),(0.33, _(u'Раз в 3 года')), + (0.25, _(u'Раз в 4 года')), (0.2, _(u'Раз в 5 лет'))) public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] currencies = [(item, item) for item in CURRENCY] - data_begin = forms.DateField(label=u'Дата начала', input_formats=['%Y-%m-%d', '%d.%m.%Y']) - data_end = forms.DateField(label=u'Дата окончания', input_formats=['%Y-%m-%d', '%d.%m.%Y']) - logo = forms.ImageField(label='Logo', required=False) + data_begin = forms.DateField(label=_(u'Дата начала'), input_formats=['%Y-%m-%d', '%d.%m.%Y']) + data_end = forms.DateField(label=_(u'Дата окончания'), input_formats=['%Y-%m-%d', '%d.%m.%Y']) + logo = forms.ImageField(label=_(u'Logo'), required=False) #organiser = forms.MultipleChoiceField(label=u'Организаторы', required=False, # choices=[(item.id, item.name) for item in Organiser.objects.language().all()]) - org = forms.CharField(required=False, label=u'Организатор') - country = forms.ChoiceField(label=u'Страна', choices=[(c.id, c.name) for c in Country.objects.all()]) - theme = forms.MultipleChoiceField(label='Тематики', + org = forms.CharField(required=False, label=_(u'Организатор')) + country = forms.ChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()]) + theme = forms.MultipleChoiceField(label=_(u'Тематики'), choices=[(item.id, item.name) for item in Theme.objects.language().all()]) - place = forms.ChoiceField(label=u'Место проведения', required=False, + place = forms.ChoiceField(label=_(u'Место проведения'), required=False, choices=places) - place_alt = forms.CharField(label = u"Альтернативное название места", required=False) + place_alt = forms.CharField(label = _(u"Альтернативное название места"), required=False) #creates select input with empty choices cause it will be filled with ajax - city = forms.CharField(label=u'Город', widget=forms.HiddenInput()) - tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) - - periodic = forms.ChoiceField(label=u'Периодичность', choices=PERIODIC, required=False) - audience = forms.MultipleChoiceField(label=u'Аудитория', choices=public, initial='', required=False) - - web_page = forms.CharField(label='Веб страница', required=False) - link = forms.CharField(label='Линк на регистрацию', required=False) - foundation_year = forms.CharField(label='Год основания', required=False) - members = forms.CharField(label='Участники', required=False) - visitors = forms.CharField(label='Посетители', required=False) - discount = forms.CharField(label='Cкидка(%)', required=False) + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) + tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(), required=False) + + periodic = forms.ChoiceField(label=_(u'Периодичность'), choices=PERIODIC, required=False) + audience = forms.MultipleChoiceField(label=_(u'Аудитория'), choices=public, initial='', required=False) + + web_page = forms.CharField(label=_(u'Веб страница'), required=False) + link = forms.CharField(label=_(u'Линк на регистрацию'), required=False) + foundation_year = forms.CharField(label=_(u'Год основания'), required=False) + members = forms.CharField(label=_(u'Участники'), required=False) + visitors = forms.CharField(label=_(u'Посетители'), required=False) + discount = forms.CharField(label=_(u'Cкидка(%)'), required=False) # - currency = forms.ChoiceField(label='Валюта', choices=currencies, required=False) - tax = forms.BooleanField(label='Налог включен', initial=True, required=False) - min_price = forms.CharField(label='Минимальная цена', required=False) - max_price = forms.CharField(label='Максимальная цена', required=False) - expohit = forms.BooleanField(label='Expohit', required=False) - canceled = forms.BooleanField(label='Отменена', required=False) - moved = forms.BooleanField(label='Перенесена', required=False) - quality_label = forms.MultipleChoiceField(label='Тип', required=False, + currency = forms.ChoiceField(label=_(u'Валюта'), choices=currencies, required=False) + tax = forms.BooleanField(label=_(u'Налог включен'), initial=True, required=False) + min_price = forms.CharField(label=_(u'Минимальная цена'), required=False) + max_price = forms.CharField(label=_(u'Максимальная цена'), required=False) + expohit = forms.BooleanField(label=_(u'Expohit'), required=False) + canceled = forms.BooleanField(label=_(u'Отменена'), required=False) + moved = forms.BooleanField(label=_(u'Перенесена'), required=False) + quality_label = forms.MultipleChoiceField(label=_(u'Тип'), required=False, choices=[('ufi', 'UFI'), ('rsva', 'РСВЯ'), ('exporating', 'ExpoRating')], widget=forms.CheckboxSelectMultiple()) @@ -97,23 +98,23 @@ class ConferenceCreateForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['main_title_%s' % code] = forms.CharField(label='Краткое описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Краткое описание'), required=False, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Описание', + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['time_%s' % code] = forms.CharField(label='Время работы', + self.fields['time_%s' % code] = forms.CharField(label=_(u'Время работы'), required=False, widget=CKEditorWidget) - self.fields['main_themes_%s' % code] = forms.CharField(label='Основные темы', + self.fields['main_themes_%s' % code] = forms.CharField(label=_(u'Основные темы'), required=False, widget=CKEditorWidget) - self.fields['discount_description_%s' % code] = forms.CharField(label='Описание скидки', + self.fields['discount_description_%s' % code] = forms.CharField(label=_(u'Описание скидки'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -313,9 +314,9 @@ class ConferenceChangeForm(ConferenceCreateForm): add some fields to ConferenceCreateForm """ - organiser = forms.ModelMultipleChoiceField(label='Организаторы', queryset=Organiser.objects.all(), required=False) - company = forms.ModelMultipleChoiceField(label='Компании', queryset=Company.objects.all(), required=False) - users = forms.ModelMultipleChoiceField(label='Пользователи', queryset=User.objects.all(), required=False) + organiser = forms.ModelMultipleChoiceField(label=_(u'Организаторы'), queryset=Organiser.objects.all(), required=False) + company = forms.ModelMultipleChoiceField(label=_(u'Компании'), queryset=Company.objects.all(), required=False) + users = forms.ModelMultipleChoiceField(label=_(u'Пользователи'), queryset=User.objects.all(), required=False) class ConferenceDeleteForm(forms.ModelForm): @@ -355,8 +356,8 @@ class TimeTableForm(forms.Form): Create TimeTable form day field must save automatically """ - begin = forms.DateTimeField(label='Время начала') - end = forms.DateTimeField(label='Время окончания') + begin = forms.DateTimeField(label=_(u'Время начала')) + end = forms.DateTimeField(label=_(u'Время окончания')) def __init__(self, *args, **kwargs): """ @@ -378,7 +379,7 @@ class TimeTableForm(forms.Form): class ConferenceFilterForm(AdminFilterForm): - created = forms.DateField(required=False, label='Дата создания') + created = forms.DateField(required=False, label=_(u'Дата создания')) model = Conference def filter(self): diff --git a/conference/models.py b/conference/models.py index e9e3ad43..a2b4dd9e 100644 --- a/conference/models.py +++ b/conference/models.py @@ -47,27 +47,27 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): url = models.SlugField(unique=True, max_length=255) old_url = models.SlugField(unique=True, max_length=255) - data_begin = models.DateField(verbose_name='Дата начала') - data_end = models.DateField(verbose_name='Дата окончания') + data_begin = models.DateField(verbose_name=_(u'Дата начала')) + data_end = models.DateField(verbose_name=_(u'Дата окончания')) services = BitField(flags=flags) #relations - country = models.ForeignKey('country.Country', verbose_name='Страна', on_delete=models.PROTECT, + country = models.ForeignKey('country.Country', verbose_name=_(u'Страна'), on_delete=models.PROTECT, related_name='conference_country') - city = models.ForeignKey('city.City', verbose_name='Город', on_delete=models.PROTECT, + city = models.ForeignKey('city.City', verbose_name=_(u'Город'), on_delete=models.PROTECT, related_name='conference_city') - place = models.ForeignKey('place_conference.PlaceConference', verbose_name='Место проведения', + place = models.ForeignKey('place_conference.PlaceConference', verbose_name=_(u'Место проведения'), blank=True, null=True, on_delete=models.PROTECT, related_name='conference_place') place_alt = models.CharField(blank=True, null=True, max_length=255) # alternative for object place - theme = models.ManyToManyField('theme.Theme', verbose_name='Тематики', + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Тематики'), related_name='conference_themes') - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True, related_name='conference_tags') - organiser = models.ManyToManyField('organiser.Organiser', verbose_name='Организатор', + organiser = models.ManyToManyField('organiser.Organiser', verbose_name=_(u'Организатор'), blank=True, null=True, related_name='conference_organisers') org = models.CharField(max_length=255, blank=True, null=True) - company = models.ManyToManyField('company.Company', verbose_name='Компании', + company = models.ManyToManyField('company.Company', verbose_name=_(u'Компании'), blank=True, null=True, related_name='conference_companies') - users = models.ManyToManyField('accounts.User', verbose_name='Посетители выставки', + users = models.ManyToManyField('accounts.User', verbose_name=_(u'Посетители выставки'), blank=True, null=True, related_name='conference_users') photogallery = models.ForeignKey('photologue.Gallery', blank=True, null=True, on_delete=models.SET_NULL) logo = models.ImageField(verbose_name='Logo', upload_to='conference/logo/', blank=True) @@ -75,17 +75,17 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): quality_label = BitField(flags=['ufi', 'rsva', 'exporating']) - periodic = models.FloatField(verbose_name='Переодичность', blank=True, null=True) + periodic = models.FloatField(verbose_name=_(u'Переодичность'), blank=True, null=True) audience = BitField(flags=[k for k, v in BIT_AUDIENCE]) - web_page = models.CharField(verbose_name='Вебсайт', max_length=255, blank=True) - link = models.CharField(verbose_name='Линк на регистрацию', max_length=255, blank=True) - discount = models.PositiveIntegerField(verbose_name='Скидка', blank=True, null=True) + web_page = models.CharField(verbose_name=_(u'Вебсайт'), max_length=255, blank=True) + link = models.CharField(verbose_name=_(u'Линк на регистрацию'), max_length=255, blank=True) + discount = models.PositiveIntegerField(verbose_name=_(u'Скидка'), blank=True, null=True) # currency = EnumField(values=CURRENCY, default='USD') - tax = models.BooleanField(verbose_name='Налог', default=1) - min_price = models.PositiveIntegerField(verbose_name='Минимальная цена', blank=True, null=True) - max_price = models.PositiveIntegerField(verbose_name='Максимальная цена', blank=True, null=True) + tax = models.BooleanField(verbose_name=_(u'Налог'), default=1) + min_price = models.PositiveIntegerField(verbose_name=_(u'Минимальная цена'), blank=True, null=True) + max_price = models.PositiveIntegerField(verbose_name=_(u'Максимальная цена'), blank=True, null=True) #administrator can cancel conference expohit = models.BooleanField(verbose_name='Expohit', default=0) canceled_by_administrator = models.BooleanField(default=0) @@ -97,17 +97,17 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): files = generic.GenericRelation('file.FileModel', content_type_field='content_type', object_id_field='object_id') note = generic.GenericRelation('note.Note', content_type_field='content_type', object_id_field='object_id') # statistic - foundation_year = models.PositiveIntegerField(verbose_name='Год основания', blank=True, null=True) - visitors = models.PositiveIntegerField(verbose_name='Посетитеил', blank=True, null=True) - members = models.PositiveIntegerField(verbose_name='Участники', blank=True, null=True) + foundation_year = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True) + visitors = models.PositiveIntegerField(verbose_name=_(u'Посетитеил'), blank=True, null=True) + members = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True) #translated fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название', max_length=255), - main_title=models.TextField(verbose_name='Краткое описание', blank=True), - description=models.TextField(verbose_name='Описание', blank=True), - main_themes=models.TextField(verbose_name='Основные темы', blank=True), - time=models.TextField(verbose_name='Время работы', blank=True), - discount_description=models.TextField(verbose_name='Описание скидки', blank=True), + name = models.CharField(verbose_name=_(u'Название'), max_length=255), + main_title=models.TextField(verbose_name=_(u'Краткое описание'), blank=True), + description=models.TextField(verbose_name=_(u'Описание'), blank=True), + main_themes=models.TextField(verbose_name=_(u'Основные темы'), blank=True), + time=models.TextField(verbose_name=_(u'Время работы'), blank=True), + discount_description=models.TextField(verbose_name=_(u'Описание скидки'), blank=True), #-----meta data title=models.CharField(max_length=250), descriptions=models.CharField(max_length=250), @@ -208,11 +208,11 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): class Statistic(TranslatableModel): conference = models.ForeignKey(Conference, related_name='statistic') - year = models.PositiveIntegerField(verbose_name='Год') - members = models.PositiveIntegerField(verbose_name='Посетители', blank=True, null=True) - visitors = models.PositiveIntegerField(verbose_name='Участники', blank=True, null=True) - area = models.PositiveIntegerField(verbose_name='Площадь', blank=True, null=True) - countries_number = models.PositiveIntegerField(verbose_name='Количество стран', blank=True, null=True) + year = models.PositiveIntegerField(verbose_name=_(u'Год')) + members = models.PositiveIntegerField(verbose_name=_(u'Посетители'), blank=True, null=True) + visitors = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True) + area = models.PositiveIntegerField(verbose_name=_(u'Площадь'), blank=True, null=True) + countries_number = models.PositiveIntegerField(verbose_name=_(u'Количество стран'), blank=True, null=True) translations = TranslatedFields( countries = models.TextField(blank=True) @@ -228,8 +228,8 @@ class TimeTable(TranslatableModel): """ conference = models.ForeignKey(Conference, related_name='business_program') - begin = models.DateTimeField(verbose_name='Начало') - end = models.DateTimeField(verbose_name='Конец') + begin = models.DateTimeField(verbose_name=_(u'Начало')) + end = models.DateTimeField(verbose_name=_(u'Конец')) timetable_organiser = models.ForeignKey('organiser.Organiser', null=True, blank=True, related_name='conf_timetable') # @@ -237,10 +237,10 @@ class TimeTable(TranslatableModel): modified = models.DateTimeField(auto_now=True) #translated fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), - programe = models.TextField(verbose_name='Программа'), - speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True), - place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) + name = models.CharField(verbose_name=_(u'Название программы'), max_length=255, blank=True), + programe = models.TextField(verbose_name=_(u'Программа')), + speaker = models.CharField(verbose_name=_(u'Спикеры'), max_length=255, blank=True), + place = models.CharField(verbose_name=_(u'Место проведения'), max_length=255, blank=True) ) def to_dict(self): diff --git a/conference/views.py b/conference/views.py index b192cb53..1e7e39c8 100644 --- a/conference/views.py +++ b/conference/views.py @@ -562,9 +562,10 @@ def send_to_organiser(request, slug): email = request.POST.get('person') phone = request.POST.get('phone', '') question = request.POST.get('question', '') - text = u"конференция: %s\n Контактное лицо:%s\nEmail: %s\nтелефон:%s\n вопрос:%s"%(exposition.name, name, email, - phone, question) - msg = EmailMessage(u'Проплаченная конференция', text, settings.DEFAULT_FROM_EMAIL, [mail_send]) + data = {'expo_name': exposition.name, 'name': name, 'email': email, + 'phone': phone, 'question': question} + text = _(u"конференция: %(expo_name)s\n Контактное лицо:%(name)s\nEmail: %(email)s\nтелефон:%(phone)s\n вопрос:%(question)s") % data + msg = EmailMessage(_(u'Проплаченная конференция'), text, settings.DEFAULT_FROM_EMAIL, [mail_send]) msg.content_subtype = "html" msg.send() redirect_to = '%sservice/thanks/'%exposition.get_permanent_url() diff --git a/core/forms.py b/core/forms.py index d00f080e..fe61cd31 100644 --- a/core/forms.py +++ b/core/forms.py @@ -2,6 +2,7 @@ from django import forms from django.conf import settings from django.core.mail import send_mail +from django.utils.translation import ugettext as _ from place_exposition.models import PlaceExposition from place_conference.models import PlaceConference from django.utils.translation import ugettext_lazy as _ @@ -9,6 +10,7 @@ from haystack.query import SearchQuerySet, EmptySearchQuerySet from hvad.forms import TranslatableModelForm from models import Page + class PlaceSearchForm(forms.Form): q = forms.CharField(label=_(u'Поиск'), required=False) w = forms.CharField(label=_(u'Где'), required=False) diff --git a/core/models.py b/core/models.py index 56d75875..c899dabe 100644 --- a/core/models.py +++ b/core/models.py @@ -2,6 +2,7 @@ from django.contrib.syndication.views import Feed from django.shortcuts import get_object_or_404 from django.db import models +from django.utils.translation import ugettext as _ from exposition.models import Exposition import copy @@ -18,9 +19,9 @@ EXPO_ON_PAGE = 10 # nearest expositions at all class LatestExpositions(Feed): - title = u"Ближайшие выставки на expomap.ru" + title = _(u"Ближайшие выставки на expomap.ru") link = '/rss/latest/' - description = u'Подписывайтесь на наш RSS-канал' + description = _(u'Подписывайтесь на наш RSS-канал') def items(self): return Exposition.enable.upcoming()[:EXPO_ON_PAGE] @@ -44,7 +45,7 @@ class CountryFeeds(Feed): return get_object_or_404(Country, url=slug) def title(self, obj): - return u"Ближайшие выставки %s:" % obj.inflect + return _(u"Ближайшие выставки %(obj)s:") % {'obj': obj.inflect} def link(self,obj): return obj.get_permanent_url() @@ -63,7 +64,7 @@ class CityFeeds(Feed): return get_object_or_404(City, url=slug) def title(self, obj): - return u"Ближайшие выставки в %s: " % obj.inflect + return _(u"Ближайшие выставки в %(obj)s: ") % {'obj': obj.inflect} def link(self,obj): return obj.get_permanent_url() @@ -82,7 +83,7 @@ class ThemeFeeds(Feed): return get_object_or_404(Theme, url=slug) def title(self, obj): - return u"Ближайшие выставки %s: " % obj.inflect + return _(u"Ближайшие выставки %(obj)s: ") % {'obj': obj.inflect} def link(self,obj): return obj.url diff --git a/core/simple_views.py b/core/simple_views.py index 5f556f4a..78ea6797 100644 --- a/core/simple_views.py +++ b/core/simple_views.py @@ -4,7 +4,7 @@ from django.views.generic import TemplateView from django.core.mail import EmailMessage from django.http import HttpResponse from django.conf import settings - +from django.utils.translation import ugettext as _ class SeminarLendingView(TemplateView): @@ -14,30 +14,32 @@ class SeminarLendingView(TemplateView): def send_to_organiser(request): mail_send = 'expomap@mail.ru' - fname = request.POST.get('name') - lname = request.POST.get('surname') - email = request.POST.get('email', '') - company = request.POST.get('company', '') - office = request.POST.get('office', '') - phone = request.POST.get('phone', '') + data = { + 'fname': request.POST.get('name'), + 'lname': request.POST.get('surname'), + 'email': request.POST.get('email', ''), + 'company': request.POST.get('company', ''), + 'office': request.POST.get('office', ''), + 'phone': request.POST.get('phone', ''), + } title = request.POST.get('type', '') - text = u"""Имя: %s; - Фамилия:%s; - Email: %s; - Телефон: %s; - компния:%s; - должность: %s"""%(fname, lname, email, phone, company, office) + text = _(u"""Имя: %(fname)s; + Фамилия:%(lname)s; + Email: %(email)s; + Телефон: %(phone)s; + компния: %(company)s; + должность: %(office)s""") % data msg = EmailMessage(title, text, settings.DEFAULT_FROM_EMAIL, [mail_send]) msg.content_subtype = "html" msg.send() redirect_to = '/service/thanks/' if title.endswith(u'семинар'): - message = u"""Мы получили Ваш запрос и очень рады, что Вам интересно участие в семинаре Expomap. Если места еще есть, мы пришлем Вам приглашение на указанную Вами электронную почту. - Увидимся на welcome-coffee ☺""" + message = _(u"""Мы получили Ваш запрос и очень рады, что Вам интересно участие в семинаре Expomap. Если места еще есть, мы пришлем Вам приглашение на указанную Вами электронную почту. + Увидимся на welcome-coffee ☺""") else: - message = u"""Благодарим за интерес к нашему семинару! За несколько дней до мероприятия мы пришлем Вам ссылку для подключения к онлайн-трансляции!""" + message = _(u"""Благодарим за интерес к нашему семинару! За несколько дней до мероприятия мы пришлем Вам ссылку для подключения к онлайн-трансляции!""") return HttpResponse(json.dumps({'success':True, 'redirect_to': redirect_to, 'message': message}), content_type='application/json') diff --git a/country/forms.py b/country/forms.py index 67193e43..92897e98 100644 --- a/country/forms.py +++ b/country/forms.py @@ -5,6 +5,8 @@ from ckeditor.widgets import CKEditorWidget from tinymce.widgets import TinyMCE from django.core.exceptions import ValidationError from django.forms.util import ErrorList +from django.utils.translation import ugettext as _ + #models from models import Country, City from directories.models import Language, Currency, Iata @@ -42,20 +44,20 @@ class CountryForm(forms.Form): save function saves data in Country object. If it doesnt exist create new object """ # - currency = forms.ModelMultipleChoiceField(label='Валюты', queryset=Currency.objects.all(), required=False) - language = forms.ModelMultipleChoiceField(label='Языки', queryset=Language.objects.all(), required=False) + currency = forms.ModelMultipleChoiceField(label=_(u'Валюты'), queryset=Currency.objects.all(), required=False) + language = forms.ModelMultipleChoiceField(label=_(u'Языки'), queryset=Language.objects.all(), required=False) # - population = forms.CharField(label='Население(млн)', required=False, - widget=forms.TextInput(attrs={'placeholder':'Население(млн)'})) + population = forms.CharField(label=_(u'Население(млн)'), required=False, + widget=forms.TextInput(attrs={'placeholder':_(u'Население(млн)')})) teritory = forms.CharField(label='Территория(км2)', required=False, - widget=forms.TextInput(attrs={'placeholder':'Територия(км2)'}))# km2 - timezone = forms.ChoiceField(label='Часовые пояса', required=False, choices=tz, initial=99) - phone_code = forms.CharField(label='Код страны', required=False, - widget=forms.TextInput(attrs={'placeholder':'Код страны'})) - time_delivery = forms.CharField(label='Срок выдачи', required=False, - widget=forms.TextInput(attrs={'placeholder':'Срок выдачи'})) + widget=forms.TextInput(attrs={'placeholder':_(u'Територия(км2)')}))# km2 + timezone = forms.ChoiceField(label=_(u'Часовые пояса'), required=False, choices=tz, initial=99) + phone_code = forms.CharField(label=_(u'Код страны'), required=False, + widget=forms.TextInput(attrs={'placeholder':_(u'Код страны')})) + time_delivery = forms.CharField(label=_(u'Срок выдачи'), required=False, + widget=forms.TextInput(attrs={'placeholder':_(u'Срок выдачи')})) - logo = forms.ImageField(label='Logo', required=False) + logo = forms.ImageField(label=_(u'Logo'), required=False) #services = forms.MultipleChoiceField(label='Сервисы', required=False, choices=); #field for comparing tmp files @@ -82,33 +84,33 @@ class CountryForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget) - self.fields['transport_%s' % code] = forms.CharField(label='Транспорт', required=False, widget=CKEditorWidget) + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) + self.fields['transport_%s' % code] = forms.CharField(label=_(u'Транспорт'), required=False, widget=CKEditorWidget) #vis inf - self.fields['rules_%s' % code] = forms.CharField(label='Правила въезда', required=False, widget=CKEditorWidget()) - self.fields['documents_%s' % code] = forms.CharField(label='Документы', required=False, widget=CKEditorWidget()) - self.fields['consulate_%s' % code] = forms.CharField(label='Консульство', required=False, widget=CKEditorWidget()) + self.fields['rules_%s' % code] = forms.CharField(label=_(u'Правила въезда'), required=False, widget=CKEditorWidget()) + self.fields['documents_%s' % code] = forms.CharField(label=_(u'Документы'), required=False, widget=CKEditorWidget()) + self.fields['consulate_%s' % code] = forms.CharField(label=_(u'Консульство'), required=False, widget=CKEditorWidget()) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) # check if exists cities connected with country countries = City.objects.language().filter(country = country_id).order_by('name') countries_list = [(item.id, item.name) for item in countries] if country_id == None or len(countries)==0: - self.fields['capital'] = forms.ChoiceField(label='Столица',choices=((None,'Нет городов в стране'),), required=False, + self.fields['capital'] = forms.ChoiceField(label=_(u'Столица'),choices=((None,_(u'Нет городов в стране')),), required=False, widget=forms.Select(attrs={'disabled' : True})) - self.fields['big_cities'] = forms.MultipleChoiceField(label='Большие города',choices=((None,'Нет городов в стране'),), required=False, + self.fields['big_cities'] = forms.MultipleChoiceField(label=_(u'Большие города'),choices=((None,_(u'Нет городов в стране')),), required=False, widget=forms.Select(attrs={'disabled' : True})) else: - self.fields['capital'] = forms.ChoiceField(label='Столица', choices=countries_list, + self.fields['capital'] = forms.ChoiceField(label=_(u'Столица'), choices=countries_list, required=False) - self.fields['big_cities'] = forms.MultipleChoiceField(label='Большие города', choices=countries_list, + self.fields['big_cities'] = forms.MultipleChoiceField(label=_(u'Большие города'), choices=countries_list, required=False) def save(self, id=None): @@ -181,7 +183,7 @@ class CountryForm(forms.Form): if phone_code.isdigit(): return phone_code else: - raise ValidationError('Введите правильный код страны') + raise ValidationError(_(u'Введите правильный код страны')) def clean_population(self): @@ -195,7 +197,7 @@ class CountryForm(forms.Form): elif population.isdigit() and population > 0: return int(population) else: - raise ValidationError('Введите правильное население') + raise ValidationError(_(u'Введите правильное население')) def clean_teritory(self): """ @@ -215,11 +217,11 @@ class CountryForm(forms.Form): class CountryDeleteForm(forms.ModelForm): url = forms.CharField(widget=forms.HiddenInput()) - + class Meta: model = Country fields = ('url',) class CountryFilterForm(AdminFilterForm): - model = Country \ No newline at end of file + model = Country diff --git a/country/models.py b/country/models.py index eb086ae7..eeada101 100644 --- a/country/models.py +++ b/country/models.py @@ -90,7 +90,7 @@ class Country(TranslatableModel): # inflect name for russian language. example- в Росии inflect = models.CharField(verbose_name=_(u'Склонение'), max_length=255, blank=True) area = models.ForeignKey(Area, verbose_name=_(u'Географическая зона')) - logo = models.ImageField(verbose_name='Logo', upload_to='country/logo/', blank=True, max_length=255) + logo = models.ImageField(verbose_name=_(u'Logo'), upload_to='country/logo/', blank=True, max_length=255) big_cities = models.ManyToManyField(City, verbose_name=_(u'Большые города'), blank=True, null=True, related_name='cities') capital = models.ForeignKey(City, verbose_name=_(u'Столица'), blank=True, null=True, on_delete=models.PROTECT, related_name='capital') language = models.ManyToManyField(Language, blank=True, null=True) @@ -173,4 +173,4 @@ class Country(TranslatableModel): pre_save.connect(pre_save_handler, sender=Country) -post_save.connect(post_save_handler, sender=Country) \ No newline at end of file +post_save.connect(post_save_handler, sender=Country) diff --git a/django_messages/admin.py b/django_messages/admin.py index 91d004a1..d0f7bd50 100644 --- a/django_messages/admin.py +++ b/django_messages/admin.py @@ -11,7 +11,7 @@ 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): @@ -19,7 +19,7 @@ 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.')) + help_text=_(_(u'Creates the message optionally for all users or a group of users.'))) def __init__(self, *args, **kwargs): super(MessageAdminForm, self).__init__(*args, **kwargs) @@ -75,7 +75,7 @@ class MessageAdmin(admin.ModelAdmin): 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: @@ -84,7 +84,7 @@ class MessageAdmin(admin.ModelAdmin): else: sender_label = 'messages_replied' recipients_label = 'messages_reply_received' - + # Notification for the sender. notification.send([obj.sender], sender_label, {'message': obj,}) @@ -108,5 +108,5 @@ class MessageAdmin(admin.ModelAdmin): if notification: # Notification for the recipient. notification.send([user], recipients_label, {'message' : obj,}) - + admin.site.register(Message, MessageAdmin) diff --git a/emencia/django/newsletter/admin_forms.py b/emencia/django/newsletter/admin_forms.py index f70ed361..ce428c9a 100644 --- a/emencia/django/newsletter/admin_forms.py +++ b/emencia/django/newsletter/admin_forms.py @@ -9,7 +9,7 @@ from country.models import Country, Area class ContactSettingsForm(forms.ModelForm): - city = forms.CharField(label=u'Город', widget=forms.HiddenInput() ,required=False) + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput() ,required=False) periodic = forms.ChoiceField(choices=ContactSettings.PERIODIC_CHOICES, label=_(u'Периодичность отправки')) first_name = forms.CharField(label=_('first name')) @@ -65,8 +65,8 @@ import xlrd from theme.models import Theme class MailingListForm(forms.ModelForm): - excel_file = forms.FileField(label='Импортировать подписчиков', required=False) - theme_for_filter = forms.MultipleChoiceField(label=u'Тематики', required=False, + excel_file = forms.FileField(label=_(u'Импортировать подписчиков'), required=False) + theme_for_filter = forms.MultipleChoiceField(label=_(u'Тематики'), required=False, choices=[(item.id, item.name) for item in Theme.objects.language().all()]) class Meta: @@ -92,7 +92,7 @@ class MailingListForm(forms.ModelForm): class NewsletterForm(forms.ModelForm): - test_contacts = forms.ModelMultipleChoiceField(label=u'Тестовые контакты', required=False, + test_contacts = forms.ModelMultipleChoiceField(label=_(u'Тестовые контакты'), required=False, queryset=Contact.objects.filter(tester=True)) content = forms.CharField(label=_('content'), widget=CKEditorWidget(config_name='newsletters')) @@ -105,4 +105,4 @@ class NewsletterForm(forms.ModelForm): class AttachmentForm(forms.ModelForm): class Meta: model = Attachment - fields = ('title', 'file_attachment') \ No newline at end of file + fields = ('title', 'file_attachment') diff --git a/emencia/django/newsletter/forms.py b/emencia/django/newsletter/forms.py index 1aba6f53..b992a5af 100644 --- a/emencia/django/newsletter/forms.py +++ b/emencia/django/newsletter/forms.py @@ -129,11 +129,11 @@ class ContactFilterForm(forms.Form): label="Список рассылки", required=False ) - created_from = forms.CharField(max_length=255, label="Создан с", required=False) - created_to = forms.CharField(max_length=255, label="Создан по", required=False) - not_active = forms.BooleanField(label="Не подтверждена подписка", required=False) - not_valid = forms.BooleanField(label="Неалидный Email", required=False) - not_subscriber = forms.BooleanField(label="Отписался", required=False) + created_from = forms.CharField(max_length=255, label=_(u"Создан с"), required=False) + created_to = forms.CharField(max_length=255, label=_(u"Создан по"), required=False) + not_active = forms.BooleanField(label=_(u"Не подтверждена подписка"), required=False) + not_valid = forms.BooleanField(label=_(u"Неалидный Email"), required=False) + not_subscriber = forms.BooleanField(label=_(u"Отписался"), required=False) def filter(self): title = 'contact list ' @@ -181,14 +181,14 @@ class ContactFilterForm(forms.Form): import xlrd COUNTRY_CHOICES = [(c.id, c.name) for c in list(set(Country.objects.language('ru').all()))] -COUNTRY_CHOICES.insert(0, ('', 'Страна')) +COUNTRY_CHOICES.insert(0, ('', _(u'Страна'))) class ContactImportForm(forms.Form): - excel_file = forms.FileField(label='Выберите файл') - activated = forms.BooleanField(label="Активные", required=False) - is_tester = forms.BooleanField(label="Тестовые", required=False) - country = forms.ChoiceField(label="Страна", choices=COUNTRY_CHOICES, required=False) + excel_file = forms.FileField(label=_(u'Выберите файл')) + activated = forms.BooleanField(label=_(u"Активные"), required=False) + is_tester = forms.BooleanField(label=_(u"Тестовые"), required=False) + country = forms.ChoiceField(label=_(u"Страна"), choices=COUNTRY_CHOICES, required=False) def save(self): data = self.cleaned_data @@ -375,7 +375,7 @@ class PopupCountFilter(forms.Form): class MailingStatusFilter(forms.Form): - status = forms.ChoiceField(choices=[('', u'Не выбрано')] + [(item[0], item[1]) for item in ContactMailingStatus.STATUS_CHOICES], + status = forms.ChoiceField(choices=[('', _(u'Не выбрано'))] + [(item[0], item[1]) for item in ContactMailingStatus.STATUS_CHOICES], required=False) email = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': 'Email'})) @@ -387,4 +387,4 @@ class MailingStatusFilter(forms.Form): qs = qs.filter(status=status) if email: qs = qs.filter(contact__email=email) - return qs \ No newline at end of file + return qs diff --git a/emencia/django/newsletter/templates/newsletter/announce_template.html b/emencia/django/newsletter/templates/newsletter/announce_template.html index 992ab4d9..c65b56d4 100644 --- a/emencia/django/newsletter/templates/newsletter/announce_template.html +++ b/emencia/django/newsletter/templates/newsletter/announce_template.html @@ -1,3 +1,4 @@ +{% load i18n %} @@ -9,15 +10,15 @@ @@ -77,7 +78,7 @@ {% if news %}
- +
Новости событий{% trans "Новости событий" %}
@@ -109,7 +110,7 @@
- посмотреть все новости + {% trans "посмотреть все новости" %}
@@ -119,7 +120,7 @@ {% if blogs %} - + @@ -173,4 +174,4 @@
Аналитика для профессионалов{% trans "Аналитика для профессионалов" %}
@@ -162,9 +163,9 @@
- \ No newline at end of file + diff --git a/emencia/django/newsletter/templates/newsletter/base.html b/emencia/django/newsletter/templates/newsletter/base.html index ffe4a2b3..94691456 100644 --- a/emencia/django/newsletter/templates/newsletter/base.html +++ b/emencia/django/newsletter/templates/newsletter/base.html @@ -1,3 +1,5 @@ +{% load i18n %} + @@ -5,10 +7,10 @@ - Emencia Django Newsletter - {% block title %}{% endblock %} + {% trans "Emencia Django Newsletter" %} - {% block title %}{% endblock %} -

Emencia Django Newsletter

+

{% trans "Emencia Django Newsletter" %}

{% block content %} {% endblock %} diff --git a/emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html b/emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html index 3605bb72..402cd0fd 100644 --- a/emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html +++ b/emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html @@ -1,17 +1,19 @@ {% extends 'client/blank.html' %} +{% load i18n %} -{% block title %}Отписаться{% endblock %} + +{% block title %}{% trans "Отписаться" %}{% endblock %} {% block content %}
{% if already_unsubscribed %}
-

Вы уже отписаны отэтой рассылки

+

{% trans "Вы уже отписаны отэтой рассылки" %}

{% else %}
-

Отписаться

+

{% trans "Отписаться" %}

diff --git a/emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html b/emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html index 8cfc1522..396cf5a4 100644 --- a/emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html +++ b/emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html @@ -3,7 +3,7 @@ - diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index c50e854d..e9fbf598 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -267,7 +267,7 @@ def send_test_newsletter(request, pk): except HTMLParseError: return HttpResponse(_('Unable send newsletter, due to errors within HTML.')) else: - return HttpResponse(u'Нет тестовых контактов') + return HttpResponse(_(u'Нет тестовых контактов')) redirect = request.META.get('HTTP_REFERER', '/admin/newsletter/newsletter/all/') return HttpResponseRedirect(redirect) @@ -382,4 +382,4 @@ class PopupStatisticsView(FormView): data = form.filter() data['form'] = form - return self.render_to_response(data) \ No newline at end of file + return self.render_to_response(data) diff --git a/emencia/django/newsletter/views/mailing_list.py b/emencia/django/newsletter/views/mailing_list.py index 7b8e91a5..abe75c39 100644 --- a/emencia/django/newsletter/views/mailing_list.py +++ b/emencia/django/newsletter/views/mailing_list.py @@ -7,6 +7,7 @@ from django.contrib import messages from django.http import HttpResponseRedirect from django.views.generic import DetailView, TemplateView from django.core.urlresolvers import reverse_lazy +from django.utils.translation import ugettext as _ from emencia.django.newsletter.utils.tokens import untokenize from emencia.django.newsletter.models import Newsletter, MailingList, ContactMailingStatus, Contact, ContactSettings @@ -107,7 +108,7 @@ def unsubscription_handle(request): form.save_additional_fields(setting) if form.cleaned_data.get('get_announce'): - messages.add_message(request, messages.INFO, u'Настройки вашой подписки успешно сохранены') + messages.add_message(request, messages.INFO, _(u'Настройки вашой подписки успешно сохранены')) else: contact.subscriber = False contact.save() diff --git a/expobanner/admin.py b/expobanner/admin.py index 3320ca1b..5a9e11b5 100644 --- a/expobanner/admin.py +++ b/expobanner/admin.py @@ -78,17 +78,17 @@ class AbstractList(ListView): class UrlList(AbstractList): model = URL - verbose = u'Список урлов' + verbose = _(u'Список урлов') class BannerGroupList(AbstractList): model = BannerGroup - verbose = u'Список груп' + verbose = _(u'Список груп') class BannerList(AbstractList): model = Banner - verbose = u'Список банеров' + verbose = _(u'Список банеров') template_name = 'admin/expobanner/banner_list.html' def get_queryset(self): @@ -103,7 +103,7 @@ class BannerList(AbstractList): class LinkList(AbstractList): model = Banner - verbose = u'Список ссылок' + verbose = _(u'Список ссылок') template_name = 'admin/expobanner/link_list.html' def get_queryset(self): diff --git a/expobanner/forms.py b/expobanner/forms.py index 3a236965..ec4dbd11 100644 --- a/expobanner/forms.py +++ b/expobanner/forms.py @@ -15,7 +15,7 @@ from theme.models import Tag, Theme class UrlCreateForm(forms.ModelForm): - verbose = u'Создать урл' + verbose = _(u'Создать урл') class Meta: model = URL @@ -23,14 +23,14 @@ class UrlCreateForm(forms.ModelForm): class BannerCreateGroupForm(forms.ModelForm): - verbose = u'Создать групу' + verbose = _(u'Создать групу') class Meta: model = BannerGroup exclude = ['created_at', 'updated_at', 'speed'] class BannerGroupUpdateForm(BannerCreateGroupForm): - verbose = u'Изменить групу' + verbose = _(u'Изменить групу') class Meta: model = BannerGroup @@ -38,7 +38,7 @@ class BannerGroupUpdateForm(BannerCreateGroupForm): class BannerCreateForm(forms.ModelForm): - verbose = u'Создать банер' + verbose = _(u'Создать банер') text = forms.CharField(label=u'Текст', required=False, widget=CKEditorWidget) class Meta: model = Banner @@ -46,7 +46,7 @@ class BannerCreateForm(forms.ModelForm): class BannerLinkCreateForm(forms.ModelForm): - verbose = u'Отслеживаемую ссылку' + verbose = _(u'Отслеживаемую ссылку') class Meta: model = Banner @@ -64,7 +64,7 @@ class BannerLinkCreateForm(forms.ModelForm): class ClientStatForm(forms.Form): - stat_pswd = forms.CharField(label=u'Введите пароль:') + stat_pswd = forms.CharField(label=_(u'Введите пароль:')) def check_pass(self, obj): pswd = self.cleaned_data['stat_pswd'] @@ -72,9 +72,9 @@ class ClientStatForm(forms.Form): class BasePaidCreateForm(forms.ModelForm): - tickets = forms.URLField(label=u'Линк на билеты') - participation = forms.URLField(label=u'Линк на участие') - official = forms.URLField(label=u'Линк на официальный сайт') + tickets = forms.URLField(label=_(u'Линк на билеты')) + participation = forms.URLField(label=_(u'Линк на участие')) + official = forms.URLField(label=_(u'Линк на официальный сайт')) class Meta: model = Paid @@ -111,8 +111,8 @@ class BasePaidCreateForm(forms.ModelForm): class PaidCreateForm(BasePaidCreateForm): kind = 1 - verbose = u'Создать проплаченую выставку' - exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput()) + verbose = _(u'Создать проплаченую выставку') + exposition = forms.CharField(label=_(u'Выставка'), widget=forms.HiddenInput()) def get_target_obj(self): return self.cleaned_data['exposition'] @@ -122,14 +122,14 @@ class PaidCreateForm(BasePaidCreateForm): try: expo = Exposition.objects.get(id=expo_id) except Exposition.DoesNotExist: - raise forms.ValidationError(u'Такой выставки не существует') + raise forms.ValidationError(_(u'Такой выставки не существует')) return expo class PaidConfCreateForm(BasePaidCreateForm): kind = 2 - verbose = u'Создать проплаченую конференцию' - conference = forms.CharField(label=u'Конференция', widget=forms.HiddenInput()) + verbose = _(u'Создать проплаченую конференцию') + conference = forms.CharField(label=_(u'Конференция'), widget=forms.HiddenInput()) def get_target_obj(self): return self.cleaned_data['conference'] @@ -139,13 +139,13 @@ class PaidConfCreateForm(BasePaidCreateForm): try: expo = Conference.objects.get(id=conference_id) except Conference.DoesNotExist: - raise forms.ValidationError(u'Такой конференции не существует') + raise forms.ValidationError(_(u'Такой конференции не существует')) return expo class MainCreateForm(forms.ModelForm): - verbose = u'Добавить выставку на главную' - exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput()) + verbose = _(u'Добавить выставку на главную') + exposition = forms.CharField(label=_(u'Выставка'), widget=forms.HiddenInput()) class Meta: model = MainPage @@ -169,13 +169,13 @@ class MainCreateForm(forms.ModelForm): try: expo = Exposition.objects.get(id=expo_id) except Exposition.DoesNotExist: - raise forms.ValidationError(u'Такой выставки не существует') + raise forms.ValidationError(_(u'Такой выставки не существует')) return expo class MainConfCreateForm(forms.ModelForm): - verbose = u'Добавить конференцию на главную' - conf = forms.CharField(label=u'Конференция', widget=forms.HiddenInput()) + verbose = _(u'Добавить конференцию на главную') + conf = forms.CharField(label=_(u'Конференция'), widget=forms.HiddenInput()) class Meta: model = MainPage @@ -199,14 +199,14 @@ class MainConfCreateForm(forms.ModelForm): try: conf = Conference.objects.get(id=conf_id) except Conference.DoesNotExist: - raise forms.ValidationError(u'Такой конференции не существует') + raise forms.ValidationError(_(u'Такой конференции не существует')) return conf class PaidUpdateForm(forms.ModelForm): - tickets = forms.URLField(label=u'Линк на билеты') - participation = forms.URLField(label=u'Линк на участие') - official = forms.URLField(label=u'Линк на официальный сайт') + tickets = forms.URLField(label=_(u'Линк на билеты')) + participation = forms.URLField(label=_(u'Линк на участие')) + official = forms.URLField(label=_(u'Линк на официальный сайт')) class Meta: model = Paid @@ -308,10 +308,10 @@ class TopMixinForm(forms.ModelForm, FieldsetMixin): return top class TopCreateForm(TopMixinForm): - verbose = u'Создать выставку в топе' - exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput()) - country = forms.MultipleChoiceField(label=u'Страна', choices=[('', ' ')] + [(c.id, c.name) for c in Country.objects.all()], required=False) - theme = forms.MultipleChoiceField(label=u'Тематика', required=False, + verbose = _(u'Создать выставку в топе') + exposition = forms.CharField(label=_(u'Выставка'), widget=forms.HiddenInput()) + country = forms.MultipleChoiceField(label=_(u'Страна'), choices=[('', ' ')] + [(c.id, c.name) for c in Country.objects.all()], required=False) + theme = forms.MultipleChoiceField(label=_(u'Тематика'), required=False, choices=[('', ' ')] + [(item.id, item.name) for item in Theme.objects.language().all()]) #excluded_cities = forms.CharField(label=u'Город', widget=forms.HiddenInput(), required=False) #excluded_tags = forms.CharField(label=u'Тег', widget=forms.HiddenInput(), required=False) @@ -356,9 +356,9 @@ class TopCreateForm(TopMixinForm): try: expo = Exposition.objects.get(id=expo_id) except Exposition.DoesNotExist: - raise forms.ValidationError(u'Такой выставки не существует') + raise forms.ValidationError(_(u'Такой выставки не существует')) return expo class TopUpdateForm(TopMixinForm): - verbose = u'Изменить выставку' + verbose = _(u'Изменить выставку') diff --git a/expobanner/models.py b/expobanner/models.py index 994a892a..94144548 100644 --- a/expobanner/models.py +++ b/expobanner/models.py @@ -23,12 +23,12 @@ class URL(models.Model): """ Model for urls or regex urls that can be used in banners representation """ - title = models.CharField(verbose_name=u'Заголовок', max_length=256) - url = models.CharField(verbose_name=u'URL or URL RegEx', max_length=2048) - regex = models.BooleanField(verbose_name=u'RegEx', default=False) + title = models.CharField(verbose_name=_(u'Заголовок'), max_length=256) + url = models.CharField(verbose_name=_(u'URL or URL RegEx'), max_length=2048) + regex = models.BooleanField(verbose_name=_(u'RegEx'), default=False) sites = models.ManyToManyField(Site, related_name='site_urls', verbose_name=_('Sites'), null=True, blank=True) - public = models.BooleanField(verbose_name=u'Активный', default=True) + public = models.BooleanField(verbose_name=_(u'Активный'), default=True) created_at = models.DateTimeField(verbose_name=_('Created At'), auto_now_add=True) updated_at = models.DateTimeField(verbose_name=_('Updated At'), auto_now=True) @@ -51,13 +51,13 @@ class BannerGroup (models.Model): """ place where banner can be show """ - name = models.CharField(verbose_name=u'Имя', max_length=255) - slug = models.SlugField(verbose_name=u'URL', unique=True) - width = models.PositiveSmallIntegerField(verbose_name=u'Ширина', default=0) - height = models.PositiveSmallIntegerField(verbose_name=u'Высота', default=0) - speed = models.PositiveSmallIntegerField(verbose_name=u'Скорость отображения', default=2000) + name = models.CharField(verbose_name=_(u'Имя'), max_length=255) + slug = models.SlugField(verbose_name=_(u'URL'), unique=True) + width = models.PositiveSmallIntegerField(verbose_name=_(u'Ширина'), default=0) + height = models.PositiveSmallIntegerField(verbose_name=_(u'Высота'), default=0) + speed = models.PositiveSmallIntegerField(verbose_name=_(u'Скорость отображения'), default=2000) - public = models.BooleanField(verbose_name=u'Активная', default=True) + public = models.BooleanField(verbose_name=_(u'Активная'), default=True) created_at = models.DateTimeField(verbose_name=_('Created At'), auto_now_add=True) updated_at = models.DateTimeField(verbose_name=_('Updated At'), auto_now=True) @@ -85,19 +85,19 @@ class Banner(models.Model, StatMixin): """ objects = BiasedManager() - title = models.CharField(verbose_name=u'Заголовок', max_length=255, blank=True) + title = models.CharField(verbose_name=_(u'Заголовок'), max_length=255, blank=True) alt = models.CharField(verbose_name=_('Alt'), max_length=255) - text = models.TextField(verbose_name=u'Текст', blank=True, null=True) - img = models.FileField(verbose_name=u'Картинка', upload_to='expo_upload', blank=True, null=True) - url = models.CharField(verbose_name=u'URL', max_length=1024) + text = models.TextField(verbose_name=_(u'Текст'), blank=True, null=True) + img = models.FileField(verbose_name=_(u'Картинка'), upload_to='expo_upload', blank=True, null=True) + url = models.CharField(verbose_name=_(u'URL'), max_length=1024) fr = models.DateField(default=date.today()) to = models.DateField(blank=True, null=True) - theme = models.ManyToManyField(Theme, blank=True, null=True, verbose_name=u'Тематика') - country = models.ManyToManyField(Country, blank=True, null=True, verbose_name=u'Страна') + theme = models.ManyToManyField(Theme, blank=True, null=True, verbose_name=_(u'Тематика')) + country = models.ManyToManyField(Country, blank=True, null=True, verbose_name=_(u'Страна')) - sort = models.PositiveSmallIntegerField(verbose_name=u'Сорт', default=500) - group = models.ForeignKey(BannerGroup, related_name='banners', verbose_name=u'Место', null=True, blank=True) + sort = models.PositiveSmallIntegerField(verbose_name=_(u'Сорт'), default=500) + group = models.ForeignKey(BannerGroup, related_name='banners', verbose_name=_(u'Место'), null=True, blank=True) often = models.PositiveSmallIntegerField( verbose_name=_('Often'), help_text=_('A ten will display 10 times more often that a one.'), @@ -114,7 +114,7 @@ class Banner(models.Model, StatMixin): # for detecting popups cookie = models.CharField(max_length=30, blank=True, null=True, default=settings.DEFAULT_POPUP_COOKIE) - public = models.BooleanField(verbose_name=u'Активный', default=True) + public = models.BooleanField(verbose_name=_(u'Активный'), default=True) created_at = models.DateTimeField(verbose_name=_('Created At'), auto_now_add=True) updated_at = models.DateTimeField(verbose_name=_('Updated At'), auto_now=True) # password for clients @@ -247,7 +247,7 @@ class Paid(models.Model, StatMixin): catalog = models.ForeignKey(Banner, related_name='paid_catalog') logo = models.ImageField(upload_to='expo-b/paid', blank=True) organiser = models.CharField(max_length=100, blank=True) - public = models.BooleanField(default=True, verbose_name=u'Активная') + public = models.BooleanField(default=True, verbose_name=_(u'Активная')) stat_pswd = models.CharField(max_length=16) created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) @@ -291,17 +291,17 @@ class Top(models.Model, StatMixin): ) link = models.ForeignKey(Banner) - catalog = models.CharField(max_length=16, verbose_name=u'Каталог для топа') - position = models.PositiveIntegerField(blank=True, default=2, null=True, verbose_name=u'Позиция') - theme = models.ManyToManyField('theme.Theme', blank=True, null=True, verbose_name=u'Тематики') - excluded_tags = models.ManyToManyField('theme.Tag', blank=True, null=True, verbose_name=u'Исключить теги') - country = models.ManyToManyField('country.Country', blank=True, null=True, verbose_name=u'Страны') + catalog = models.CharField(max_length=16, verbose_name=_(u'Каталог для топа')) + position = models.PositiveIntegerField(blank=True, default=2, null=True, verbose_name=_(u'Позиция')) + theme = models.ManyToManyField('theme.Theme', blank=True, null=True, verbose_name=_(u'Тематики')) + excluded_tags = models.ManyToManyField('theme.Tag', blank=True, null=True, verbose_name=_(u'Исключить теги')) + country = models.ManyToManyField('country.Country', blank=True, null=True, verbose_name=_(u'Страны')) cities = models.ManyToManyField('city.City', related_name='top_in_set', blank=True, null=True, verbose_name=_(u'Города')) months = MonthMultiSelectField(_(u'Топ месяца'), blank=True, null=True, default=None, max_length=255,) years = models.PositiveSmallIntegerField(_(u'Топ года'), choices=YEARS, blank=True, null=True, default=None) - excluded_cities = models.ManyToManyField('city.City', blank=True, null=True, verbose_name=u'Исключить города') - fr = models.DateField(default=date.today(), verbose_name=u'Начало') - to = models.DateField(blank=True, null=True, verbose_name=u'Конец') + excluded_cities = models.ManyToManyField('city.City', blank=True, null=True, verbose_name=_(u'Исключить города')) + fr = models.DateField(default=date.today(), verbose_name=_(u'Начало')) + to = models.DateField(blank=True, null=True, verbose_name=_(u'Конец')) stat_pswd = models.CharField(max_length=16) objects = models.Manager() @@ -335,8 +335,8 @@ class MainPage(models.Model, StatMixin): events on main page info """ link = models.ForeignKey(Banner) - position = models.PositiveIntegerField(blank=True, default=2, null=True, verbose_name=u'Позиция') - public = models.BooleanField(default=True, verbose_name=u'Активная') + position = models.PositiveIntegerField(blank=True, default=2, null=True, verbose_name=_(u'Позиция')) + public = models.BooleanField(default=True, verbose_name=_(u'Активная')) stat_pswd = models.CharField(max_length=16) created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) diff --git a/expobanner/stat_views.py b/expobanner/stat_views.py index a1ac7ae7..e1feceac 100644 --- a/expobanner/stat_views.py +++ b/expobanner/stat_views.py @@ -7,6 +7,7 @@ from django.conf import settings from django.core.urlresolvers import reverse from expobanner.models import Banner, Paid from expobanner.forms import ClientStatForm +from django.utils.translation import ugettext as _ @@ -46,7 +47,7 @@ class BannerStat(FormMixin, DetailView): self.request.session[obj.get_cookie_name()] = 1 return HttpResponseRedirect(self.get_success_url()) else: - form.errors['stat_pswd'] = ErrorList([u'Неправильный пароль']) + form.errors['stat_pswd'] = ErrorList([_(u'Неправильный пароль')]) return self.form_invalid(form) class PaidStat(BannerStat): @@ -54,4 +55,4 @@ class PaidStat(BannerStat): template_name = 'client/expobanners/paid_stat.html' def get_success_url(self): - return reverse('paid_stat_client', kwargs={'pk': self.object.pk}) \ No newline at end of file + return reverse('paid_stat_client', kwargs={'pk': self.object.pk}) diff --git a/exposition/forms.py b/exposition/forms.py index 687a0393..f4949e0b 100644 --- a/exposition/forms.py +++ b/exposition/forms.py @@ -32,64 +32,64 @@ class ExpositionCreateForm(forms.Form): save function saves data in Exposition object. If it doesnt exist create new object """ - PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), - (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'), - (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет')) + PERIODIC = ((0, _(u'Не выбрано')), (1.0, _(u'Ежегодно')), (2.0, _(u'2 раза в год')), (3.0, _(u'3 раза в год')), + (4.0, _(u'4 раза в год')), (5.0, _(u'5 раз в год')), (0.5, _(u'Раз в 2 года')),(0.33, _(u'Раз в 3 года')), + (0.25, _(u'Раз в 4 года')), (0.2, _(u'Раз в 5 лет'))) public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] currencies = [(item, item) for item in CURRENCY] - data_begin = forms.DateField(label=u'Дата начала', input_formats=['%Y-%m-%d', '%d.%m.%Y']) - data_end = forms.DateField(label=u'Дата окончания', input_formats=['%Y-%m-%d', '%d.%m.%Y']) - logo = forms.ImageField(label='Logo', required=False) + data_begin = forms.DateField(label=_(u'Дата начала'), input_formats=['%Y-%m-%d', '%d.%m.%Y']) + data_end = forms.DateField(label=_(u'Дата окончания'), input_formats=['%Y-%m-%d', '%d.%m.%Y']) + logo = forms.ImageField(label=_('Logo'), required=False) #organiser = forms.MultipleChoiceField(label=u'Организаторы', required=False, # choices=[(item.id, item.name) for item in Organiser.objects.language().all()]) - org = forms.CharField(required=False, label=u'Организатор') + org = forms.CharField(required=False, label=_(u'Организатор')) #company = forms.MultipleChoiceField(label=u'Компании', required=False, # choices=[(item.id, item.name) for item in Company.objects.language().all()] ) - country = forms.ChoiceField(label=u'Страна', choices=[(c.id, c.name) for c in Country.objects.all()]) + country = forms.ChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()]) theme = forms.MultipleChoiceField( - label='Тематики', + label=_(u'Тематики'), choices=[(item.id, item.name) for item in Theme.objects.language().filter(types=Theme.types.exposition)]) - place = forms.ChoiceField(label=u'Место проведения', required=False, + place = forms.ChoiceField(label=_(u'Место проведения'), required=False, choices=places) - place_alt = forms.CharField(required=False, label=u'Альтернативное место') + place_alt = forms.CharField(required=False, label=_(u'Альтернативное место')) #creates select input with empty choices cause it will be filled with ajax - city = forms.CharField(label=u'Город', widget=forms.HiddenInput()) - tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) - - periodic = forms.ChoiceField(label=u'Периодичность', choices=PERIODIC, required=False) - audience = forms.MultipleChoiceField(label=u'Аудитория', choices=public, initial='', required=False) - web_page = forms.CharField(label=u'Веб страница', required=False) - registration_link = forms.CharField(label=u'Ссылка на регистрацию', required=False) - foundation_year = forms.CharField(label=u'Год основания', required=False) - members = forms.CharField(label=u'Участники', required=False) - visitors = forms.CharField(label=u'Посетители', required=False) - min_area = forms.CharField(label=u'Минимальная площадь', required=False) - discount = forms.CharField(label=u'Cкидка(%)', required=False) - area = forms.CharField(label=u'Площадь', required=False) - quality_label = forms.MultipleChoiceField(label=u'Метки', required=False, + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) + tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(), required=False) + + periodic = forms.ChoiceField(label=_(u'Периодичность'), choices=PERIODIC, required=False) + audience = forms.MultipleChoiceField(label=_(u'Аудитория'), choices=public, initial='', required=False) + web_page = forms.CharField(label=_(u'Веб страница'), required=False) + registration_link = forms.CharField(label=_(u'Ссылка на регистрацию'), required=False) + foundation_year = forms.CharField(label=_(u'Год основания'), required=False) + members = forms.CharField(label=_(u'Участники'), required=False) + visitors = forms.CharField(label=_(u'Посетители'), required=False) + min_area = forms.CharField(label=_(u'Минимальная площадь'), required=False) + discount = forms.CharField(label=_(u'Cкидка(%)'), required=False) + area = forms.CharField(label=_(u'Площадь'), required=False) + quality_label = forms.MultipleChoiceField(label=_(u'Метки'), required=False, choices=[('ufi', 'UFI'), ('rsva', 'РСВЯ'), ('exporating', 'ExpoRating')], widget=forms.CheckboxSelectMultiple()) # - currency = forms.ChoiceField(label=u'Валюта', choices=currencies, required=False) - application_deadline = forms.DateField(label=u'Срок подачи стенда',input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False) - min_stand_size = forms.CharField(label=u'Минимальный размер стенда', required=False) - - price_catalog = forms.CharField(label=u'Цена за каталог', required=False) - tax = forms.BooleanField(label=u'Налог включен', initial=True, required=False) - min_closed_area = forms.CharField(label=u'Минимальная цена закрытой НЕ оборудованной площади', required=False) - max_closed_area = forms.CharField(label=u'Максимальная цена закрытой НЕ оборудованной площади', required=False) - min_closed_equipped_area = forms.CharField(label=u'Минимальная цена закрытой оборудованной площади', required=False) - max_closed_equipped_area = forms.CharField(label=u'Максимальная цена закрытой оборудованной площади', required=False) - min_open_area = forms.CharField(label=u'Минимальная цена открытой площади', required=False) - max_open_area = forms.CharField(label=u'Максимальная цена открытой площади', required=False) - registration_payment = forms.CharField(label=u'Регистрационны взнос', required=False) - - expohit = forms.BooleanField(label=u'Expohit', required=False) - canceled = forms.BooleanField(label=u'Отменена', required=False) - moved = forms.BooleanField(label=u'Перенесена', required=False) + currency = forms.ChoiceField(label=_(u'Валюта'), choices=currencies, required=False) + application_deadline = forms.DateField(label=_(u'Срок подачи стенда'),input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False) + min_stand_size = forms.CharField(label=_(u'Минимальный размер стенда'), required=False) + + price_catalog = forms.CharField(label=_(u'Цена за каталог'), required=False) + tax = forms.BooleanField(label=_(u'Налог включен'), initial=True, required=False) + min_closed_area = forms.CharField(label=_(u'Минимальная цена закрытой НЕ оборудованной площади'), required=False) + max_closed_area = forms.CharField(label=_(u'Максимальная цена закрытой НЕ оборудованной площади'), required=False) + min_closed_equipped_area = forms.CharField(label=_(u'Минимальная цена закрытой оборудованной площади'), required=False) + max_closed_equipped_area = forms.CharField(label=_(u'Максимальная цена закрытой оборудованной площади'), required=False) + min_open_area = forms.CharField(label=_(u'Минимальная цена открытой площади'), required=False) + max_open_area = forms.CharField(label=_(u'Максимальная цена открытой площади'), required=False) + registration_payment = forms.CharField(label=_(u'Регистрационны взнос'), required=False) + + expohit = forms.BooleanField(label=_(u'Expohit'), required=False) + canceled = forms.BooleanField(label=_(u'Отменена'), required=False) + moved = forms.BooleanField(label=_(u'Перенесена'), required=False) #field for comparing tmp files key = forms.CharField(required=False, widget=forms.HiddenInput()) # @@ -107,46 +107,46 @@ class ExpositionCreateForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label=u'Название', required=required, + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['main_title_%s' % code] = forms.CharField(label=u'Краткое описание', + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Краткое описание'), required=False, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label=u'Описание', + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['time_%s' % code] = forms.CharField(label=u'Время работы', + self.fields['time_%s' % code] = forms.CharField(label=_(u'Время работы'), required=False, widget=CKEditorWidget) - self.fields['price_day_%s' % code] = forms.CharField(label=u'Стоимость билета 1 день', required=False, + self.fields['price_day_%s' % code] = forms.CharField(label=_(u'Стоимость билета 1 день'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['price_all_%s' % code] = forms.CharField(label=u'Стоимость билета все дни', required=False, + self.fields['price_all_%s' % code] = forms.CharField(label=_(u'Стоимость билета все дни'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['price_day_bar_%s' % code] = forms.CharField(label=u'Стоимость на стойке 1 день', required=False, + self.fields['price_day_bar_%s' % code] = forms.CharField(label=_(u'Стоимость на стойке 1 день'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['price_all_bar_%s' % code] = forms.CharField(label=u'Стоимость на стойке все дни', required=False, + self.fields['price_all_bar_%s' % code] = forms.CharField(label=_(u'Стоимость на стойке все дни'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['products_%s' % code] = forms.CharField(label=u'Экспонируемые продукты', + self.fields['products_%s' % code] = forms.CharField(label=_(u'Экспонируемые продукты'), required=False, widget=CKEditorWidget) - self.fields['discount_description_%s' % code] = forms.CharField(label=u'Описание скидки', + self.fields['discount_description_%s' % code] = forms.CharField(label=_(u'Описание скидки'), required=False, widget=CKEditorWidget) - self.fields['stat_countries_%s' % code] = forms.CharField(label=u'Участвующие страны', + self.fields['stat_countries_%s' % code] = forms.CharField(label=_(u'Участвующие страны'), required=False, widget=CKEditorWidget) - self.fields['pre_condition_%s' % code] = forms.CharField(label=u'Условия предварительной регистрации',required=False, + self.fields['pre_condition_%s' % code] = forms.CharField(label=_(u'Условия предварительной регистрации'),required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['stand_condition_%s' % code] = forms.CharField(label=u'Условия регистрации на стойке',required=False, + self.fields['stand_condition_%s' % code] = forms.CharField(label=_(u'Условия регистрации на стойке'),required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['visit_note_%s' % code] = forms.CharField(label=u'Примечание по посещению',required=False, + self.fields['visit_note_%s' % code] = forms.CharField(label=_(u'Примечание по посещению'),required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['participation_note_%s' % code] = forms.CharField(label=u'Примечание по участии',required=False, + self.fields['participation_note_%s' % code] = forms.CharField(label=_(u'Примечание по участии'),required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) #meta data - self.fields['title_%s' % code] = forms.CharField(label=u'Meta title', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Meta title'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label=u'Meta keywords', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Meta keywords'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label=u'Meta description', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Meta description'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, obj=None): @@ -248,7 +248,7 @@ class ExpositionCreateForm(forms.Form): exposition = Exposition.objects.filter(url=translit_with_separator(name_ru)) if exposition and str(exposition[0].id) != id: - msg = 'Выставка с таким названием уже существует' + msg = _(u'Выставка с таким названием уже существует') self._errors['name_ru'] = ErrorList([msg]) del self.cleaned_data['name_ru'] @@ -467,11 +467,11 @@ class ExpositionDeleteForm(forms.ModelForm): class StatisticForm(forms.Form): - year = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), label='Год') - visitors = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label='Посетители') - members = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label='Участники') - area = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label='Площадь') - countries_number = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label='Число стран') + year = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), label=_(u'Год')) + visitors = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label=_(u'Посетители')) + members = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label=_(u'Участники')) + area = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label=_(u'Площадь')) + countries_number = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:70px'}), required=False, label=_(u'Число стран')) def __init__(self, *args, **kwargs): """ @@ -485,7 +485,7 @@ class StatisticForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['countries_%s' % code] = forms.CharField(label=u'Участвующие страны', + self.fields['countries_%s' % code] = forms.CharField(label=_(u'Участвующие страны'), required=False, widget=forms.TextInput(attrs={'style':'width: 250px'})) @@ -532,11 +532,11 @@ class StatisticForm(forms.Form): from functions.files import check_tmp_timetables class TimeTableForm(forms.Form): - begin = forms.DateTimeField(label='Время начала', input_formats=date_formats, + begin = forms.DateTimeField(label=_(u'Время начала'), input_formats=date_formats, widget=forms.TextInput(attrs={'style':'width: 150px'})) - end = forms.DateTimeField(label='Время окончания', input_formats=date_formats, + end = forms.DateTimeField(label=_(u'Время окончания'), input_formats=date_formats, widget=forms.TextInput(attrs={'style':'width: 150px'})) - timetable_organiser = forms.ChoiceField(label='Организатор', required=False, + timetable_organiser = forms.ChoiceField(label=_(u'Организатор'), required=False, choices=[(item.id, item.name) for item in Organiser.objects.language().all()]) def __init__(self, *args, **kwargs): @@ -552,13 +552,13 @@ class TimeTableForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название программы', required=required, + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название программы'), required=required, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['programe_%s' % code] = forms.CharField(label='Программа', required=False, + self.fields['programe_%s' % code] = forms.CharField(label=_(u'Программа'), required=False, widget=CKEditorWidget) - self.fields['speaker_%s' % code] = forms.CharField(label='Организатор', required=False, + self.fields['speaker_%s' % code] = forms.CharField(label=_(u'Организатор'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['place_%s' % code] = forms.CharField(label='Место проведения', required=False, + self.fields['place_%s' % code] = forms.CharField(label=_(u'Место проведения'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self,exposition=None): @@ -591,11 +591,11 @@ monthes = [('', ''), class ExpositionFilterForm(AdminFilterForm): model = Exposition - country = forms.MultipleChoiceField(label=u'Страна', choices=[(c.id, c.name) for c in Country.objects.all()], + country = forms.MultipleChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()], required=False) #city = forms.CharField(label=u'Город', widget=forms.HiddenInput(), required=False) - year = forms.CharField(label=u'Год', required=False) - month = forms.ChoiceField(label=u'Месяц',choices=[(item[0], item[1]) for item in monthes], required=False) + year = forms.CharField(label=_(u'Год'), required=False) + month = forms.ChoiceField(label=_(u'Месяц'),choices=[(item[0], item[1]) for item in monthes], required=False) def filter(self): diff --git a/exposition/models.py b/exposition/models.py index 7a1febe6..6c6a4dae 100644 --- a/exposition/models.py +++ b/exposition/models.py @@ -55,39 +55,39 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): url = models.SlugField(unique=True, max_length=255) old_url = models.SlugField(unique=True, max_length=255) - data_begin = models.DateField(verbose_name='Дата начала') - data_end = models.DateField(verbose_name='Дата окончания') + data_begin = models.DateField(verbose_name=_(u'Дата начала')) + data_end = models.DateField(verbose_name=_(u'Дата окончания')) services = BitField(flags=flags) # relations - creator = models.ForeignKey('accounts.User', verbose_name=u'Создатель', on_delete=models.SET_NULL, + creator = models.ForeignKey('accounts.User', verbose_name=_(u'Создатель'), on_delete=models.SET_NULL, related_name='exposition_creator', blank=True, null=True) - country = models.ForeignKey('country.Country', verbose_name='Страна', on_delete=models.PROTECT, + country = models.ForeignKey('country.Country', verbose_name=_(u'Страна'), on_delete=models.PROTECT, related_name='exposition_country') - city = models.ForeignKey('city.City', verbose_name='Город', on_delete=models.PROTECT, + city = models.ForeignKey('city.City', verbose_name=_(u'Город'), on_delete=models.PROTECT, related_name='exposition_city') - place = models.ForeignKey('place_exposition.PlaceExposition', verbose_name='Место проведения', + place = models.ForeignKey('place_exposition.PlaceExposition', verbose_name=_(u'Место проведения'), blank=True, null=True, on_delete=models.PROTECT, related_name='exposition_place') - theme = models.ManyToManyField('theme.Theme', verbose_name='Тематики', + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Тематики'), related_name='exposition_themes') - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True, related_name='exposition_tags') - organiser = models.ManyToManyField('organiser.Organiser', verbose_name='Организатор', + organiser = models.ManyToManyField('organiser.Organiser', verbose_name=_(u'Организатор'), blank=True, null=True, related_name='exposition_organisers') org = models.CharField(max_length=255, blank=True, null=True) place_alt = models.CharField(max_length=255, blank=True, null=True) - company = models.ManyToManyField('company.Company', verbose_name='Компании', + company = models.ManyToManyField('company.Company', verbose_name=_(u'Компании'), blank=True, null=True, related_name='exposition_companies') - users = models.ManyToManyField('accounts.User', verbose_name='Посетители выставки', + users = models.ManyToManyField('accounts.User', verbose_name=_(u'Посетители выставки'), blank=True, null=True, related_name='exposition_users') photogallery = models.ForeignKey('photologue.Gallery', blank=True, null=True, on_delete=models.SET_NULL) logo = models.ImageField(verbose_name='Logo', upload_to='exposition/logo/', blank=True) rating = models.IntegerField(default=0) # добавить индекс в базе quality_label = BitField(flags=['ufi', 'rsva', 'exporating']) - visitors = models.PositiveIntegerField(verbose_name='Посетители', blank=True, null=True) - members = models.PositiveIntegerField(verbose_name='Участники', blank=True, null=True) - discount = models.PositiveIntegerField(verbose_name='Скидка', blank=True, null=True) - expohit = models.BooleanField(verbose_name='Expohit', default=0) + visitors = models.PositiveIntegerField(verbose_name=_(u'Посетители'), blank=True, null=True) + members = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True) + discount = models.PositiveIntegerField(verbose_name=_(u'Скидка'), blank=True, null=True) + expohit = models.BooleanField(verbose_name=_(u'Expohit'), default=0) # administrator can cancel exposition canceled_by_administrator = models.BooleanField(default=0) #can publish not immediately @@ -103,22 +103,22 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): views = models.PositiveIntegerField(default=0) translations = TranslatedFields( - name = models.CharField(verbose_name='Название', max_length=255), - main_title = models.TextField(verbose_name='Краткое описание', blank=True), - description = models.TextField(verbose_name='Описание', blank=True), - products = models.TextField(verbose_name='Экспонируемые продукты', blank=True), - discount_description = models.TextField(verbose_name='Описание скидки', blank=True), - time = models.TextField(verbose_name='Время работы', blank=True), + name = models.CharField(verbose_name=_(u'Название'), max_length=255), + main_title = models.TextField(verbose_name=_(u'Краткое описание'), blank=True), + description = models.TextField(verbose_name=_(u'Описание'), blank=True), + products = models.TextField(verbose_name=_(u'Экспонируемые продукты'), blank=True), + discount_description = models.TextField(verbose_name=_(u'Описание скидки'), blank=True), + time = models.TextField(verbose_name=_(u'Время работы'), blank=True), # visit and particaption data - price_day = models.CharField(verbose_name='Стоимость билета 1 день', max_length=255, blank=True), - price_all = models.CharField(verbose_name='Стоимость билета все дни', max_length=255, blank=True), - price_day_bar = models.CharField(verbose_name='Стоимость на стойке 1 день', max_length=255, blank=True), - price_all_bar = models.CharField(verbose_name='Стоимость на стойке все дни', max_length=255, blank=True), - stat_countries = models.TextField(verbose_name='Участвующие страны', blank=True), - pre_condition = models.CharField(verbose_name='Условия предварительной регистрации', max_length=255, blank=True), - stand_condition = models.CharField(verbose_name='Условия регистрации на стойке', max_length=255, blank=True), - visit_note = models.CharField(verbose_name='Примечание по посещению', max_length=255, blank=True), - participation_note = models.TextField(verbose_name='Примечание по участии', blank=True), + price_day = models.CharField(verbose_name=_(u'Стоимость билета 1 день'), max_length=255, blank=True), + price_all = models.CharField(verbose_name=_(u'Стоимость билета все дни'), max_length=255, blank=True), + price_day_bar = models.CharField(verbose_name=_(u'Стоимость на стойке 1 день'), max_length=255, blank=True), + price_all_bar = models.CharField(verbose_name=_(u'Стоимость на стойке все дни'), max_length=255, blank=True), + stat_countries = models.TextField(verbose_name=_(u'Участвующие страны'), blank=True), + pre_condition = models.CharField(verbose_name=_(u'Условия предварительной регистрации'), max_length=255, blank=True), + stand_condition = models.CharField(verbose_name=_(u'Условия регистрации на стойке'), max_length=255, blank=True), + visit_note = models.CharField(verbose_name=_(u'Примечание по посещению'), max_length=255, blank=True), + participation_note = models.TextField(verbose_name=_(u'Примечание по участии'), blank=True), #-----meta data @@ -131,32 +131,32 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): note = generic.GenericRelation('note.Note', content_type_field='content_type', object_id_field='object_id') #about - periodic = models.FloatField(verbose_name='Переодичность', blank=True, null=True) + periodic = models.FloatField(verbose_name=_(u'Переодичность'), blank=True, null=True) audience = BitField(flags=[k for k, v in BIT_AUDIENCE]) - web_page = models.CharField(verbose_name='Вебсайт', max_length=255, blank=True) - foundation_year = models.PositiveIntegerField(verbose_name='Год основания', blank=True, null=True) - area = models.PositiveIntegerField(verbose_name='Площадь', blank=True, null=True) + web_page = models.CharField(verbose_name=_(u'Вебсайт'), max_length=255, blank=True) + foundation_year = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True) + area = models.PositiveIntegerField(verbose_name=_(u'Площадь'), blank=True, null=True) # conditions of Participation - registration_link = models.URLField(verbose_name='Ссылка на регистрацию', max_length=255, blank=True) - min_area = models.PositiveIntegerField(verbose_name='Минимальная площадь', blank=True, null=True) + registration_link = models.URLField(verbose_name=_(u'Ссылка на регистрацию'), max_length=255, blank=True) + min_area = models.PositiveIntegerField(verbose_name=_(u'Минимальная площадь'), blank=True, null=True) currency = EnumField(values=CURRENCY, default='USD') - application_deadline = models.DateField(verbose_name='Срок подачи заявки', null=True) - min_stand_size = models.PositiveIntegerField(verbose_name='Минимальный размер стэнда', blank=True, null=True) - price_catalog = models.PositiveIntegerField(verbose_name='Стоимость каталога', blank=True, null=True) - tax = models.BooleanField(verbose_name='Налог', default=1) - min_closed_area = models.PositiveIntegerField(verbose_name='Минимальная цена закрытой НЕ оборудованной площади', + application_deadline = models.DateField(verbose_name=_(u'Срок подачи заявки'), null=True) + min_stand_size = models.PositiveIntegerField(verbose_name=_(u'Минимальный размер стэнда'), blank=True, null=True) + price_catalog = models.PositiveIntegerField(verbose_name=_(u'Стоимость каталога'), blank=True, null=True) + tax = models.BooleanField(verbose_name=_(u'Налог'), default=1) + min_closed_area = models.PositiveIntegerField(verbose_name=_(u'Минимальная цена закрытой НЕ оборудованной площади'), blank=True, null=True) - max_closed_area = models.PositiveIntegerField(verbose_name='Максимальная цена закрытой НЕ оборудованной площади', + max_closed_area = models.PositiveIntegerField(verbose_name=_(u'Максимальная цена закрытой НЕ оборудованной площади'), blank=True, null=True) - min_closed_equipped_area = models.PositiveIntegerField(verbose_name='Минимальная цена закрытой оборудованной площади', + min_closed_equipped_area = models.PositiveIntegerField(verbose_name=_(u'Минимальная цена закрытой оборудованной площади'), blank=True, null=True) - max_closed_equipped_area = models.PositiveIntegerField(verbose_name='Максимальная цена закрытой оборудованной площади', + max_closed_equipped_area = models.PositiveIntegerField(verbose_name=_(u'Максимальная цена закрытой оборудованной площади'), blank=True, null=True) - min_open_area = models.PositiveIntegerField(verbose_name='Минимальная цена открытой площади', + min_open_area = models.PositiveIntegerField(verbose_name=_(u'Минимальная цена открытой площади'), blank=True, null=True) - max_open_area = models.PositiveIntegerField(verbose_name='Максимальная цена открытой площади', + max_open_area = models.PositiveIntegerField(verbose_name=_(u'Максимальная цена открытой площади'), blank=True, null=True) - registration_payment = models.PositiveIntegerField(verbose_name='Регистрационный взнос', blank=True, null=True) + registration_payment = models.PositiveIntegerField(verbose_name=_(u'Регистрационный взнос'), blank=True, null=True) paid_new = models.ForeignKey('expobanner.Paid', blank=True, null=True, on_delete=models.SET_NULL) top = models.ForeignKey('expobanner.Top', blank=True, null=True, on_delete=models.SET_NULL) @@ -296,11 +296,11 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): class Statistic(TranslatableModel): exposition = models.ForeignKey(Exposition, related_name='statistic') - year = models.PositiveIntegerField(verbose_name='Год') - members = models.PositiveIntegerField(verbose_name='Посетители', blank=True, null=True) - visitors = models.PositiveIntegerField(verbose_name='Участники', blank=True, null=True) - area = models.PositiveIntegerField(verbose_name='Площадь', blank=True, null=True) - countries_number = models.PositiveIntegerField(verbose_name='Количество стран', blank=True, null=True) + year = models.PositiveIntegerField(verbose_name=_(u'Год')) + members = models.PositiveIntegerField(verbose_name=_(u'Посетители'), blank=True, null=True) + visitors = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True) + area = models.PositiveIntegerField(verbose_name=_(u'Площадь'), blank=True, null=True) + countries_number = models.PositiveIntegerField(verbose_name=_(u'Количество стран'), blank=True, null=True) translations = TranslatedFields( countries = models.TextField(blank=True) @@ -316,18 +316,18 @@ class TimeTable(TranslatableModel): """ exposition = models.ForeignKey(Exposition, related_name='business_program') - begin = models.DateTimeField(verbose_name='Начало') - end = models.DateTimeField(verbose_name='Конец') + begin = models.DateTimeField(verbose_name=_(u'Начало')) + end = models.DateTimeField(verbose_name=_(u'Конец')) timetable_organiser = models.ForeignKey(Organiser, null=True, blank=True) # created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) #translated fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), - programe = models.TextField(verbose_name='Программа', blank=True), - speaker = models.CharField(verbose_name='Организатор', max_length=255, blank=True), - place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) + name = models.CharField(verbose_name=_(u'Название программы'), max_length=255, blank=True), + programe = models.TextField(verbose_name=_(u'Программа'), blank=True), + speaker = models.CharField(verbose_name=_(u'Организатор'), max_length=255, blank=True), + place = models.CharField(verbose_name=_(u'Место проведения'), max_length=255, blank=True) ) def to_dict(self): @@ -336,8 +336,8 @@ class TimeTable(TranslatableModel): class TmpTimeTable(TranslatableModel): exposition = models.ForeignKey(Exposition, null=True, blank=True) - begin = models.DateTimeField(verbose_name='Начало') - end = models.DateTimeField(verbose_name='Конец') + begin = models.DateTimeField(verbose_name=_(u'Начало')) + end = models.DateTimeField(verbose_name=_(u'Конец')) timetable_organiser = models.ForeignKey(Organiser, null=True, blank=True) # key uses for checking keys from new objects. key = models.CharField(max_length=255, blank=True) @@ -346,10 +346,10 @@ class TmpTimeTable(TranslatableModel): modified = models.DateTimeField(auto_now=True) #translated fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), - programe = models.TextField(verbose_name='Программа'), - speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True), - place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) + name = models.CharField(verbose_name=_(u'Название программы'), max_length=255, blank=True), + programe = models.TextField(verbose_name=_(u'Программа')), + speaker = models.CharField(verbose_name=_(u'Спикеры'), max_length=255, blank=True), + place = models.CharField(verbose_name=_(u'Место проведения'), max_length=255, blank=True) ) diff --git a/exposition/views.py b/exposition/views.py index a874a1ad..4d664a6f 100644 --- a/exposition/views.py +++ b/exposition/views.py @@ -640,13 +640,15 @@ def add_note(request, slug): def send_to_organiser(request, slug): exposition = get_object_or_404(Exposition, url=slug) mail_send = 'evm@expomap.ru' - name = request.POST.get('person_inf') - email = request.POST.get('person') - phone = request.POST.get('phone', '') - question = request.POST.get('question', '') - text = u"выставка: %s\n Контактное лицо:%s\nEmail: %s\nтелефон:%s\n вопрос:%s"%(exposition.name, name, email, - phone, question) - msg = EmailMessage(u'Проплаченная выставка', text, settings.DEFAULT_FROM_EMAIL, [mail_send]) + data = { + 'expo_name': exposition.name, + 'name': request.POST.get('person_inf'), + 'email': request.POST.get('person'), + 'phone': request.POST.get('phone', ''), + 'question': request.POST.get('question', ''), + } + text = _(u"выставка: %(expo_name)s\n Контактное лицо:%(name)s\nEmail: %(email)s\nтелефон:%(phone)s\n вопрос:%(question)s") % data + msg = EmailMessage(_(u'Проплаченная выставка'), text, settings.DEFAULT_FROM_EMAIL, [mail_send]) msg.content_subtype = "html" msg.send() redirect_to = '%sservice/thanks/'%exposition.get_permanent_url() diff --git a/file/forms.py b/file/forms.py index ca57fc51..2ae1a8a8 100644 --- a/file/forms.py +++ b/file/forms.py @@ -11,14 +11,14 @@ from functions.translate import populate, fill_trans_fields_all #python from PIL import Image import pytils, re - +from django.utils.translation import ugettext as _ class FileForm(forms.Form): - file_path = forms.FileField(label='Выберите файл') + file_path = forms.FileField(label=_(u'Выберите файл')) model = forms.CharField(required=False, widget=forms.HiddenInput()) - purposes = [('scheme teritory','Схема территории'),('preview','Превью'), ('preview2','Превью2')] - purpose = forms.ChoiceField(label='Назначение', choices=purposes) + purposes = [('scheme teritory',_(u'Схема территории')),('preview',_(u'Превью')), ('preview2',_(u'Превью2'))] + purpose = forms.ChoiceField(label=_(u'Назначение'), choices=purposes) def __init__(self, *args, **kwargs): """ @@ -32,8 +32,8 @@ class FileForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['file_name_%s'%code] = forms.CharField(label='Имя файла',required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) - self.fields['description_%s'%code] = forms.CharField(label='Описание', required=False, widget=forms.Textarea()) + self.fields['file_name_%s'%code] = forms.CharField(label=_(u'Имя файла'),required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) + self.fields['description_%s'%code] = forms.CharField(label=_(u'Описание'), required=False, widget=forms.Textarea()) def save(self, request, obj=None): """ @@ -87,13 +87,13 @@ class FileModelForm(forms.Form): save function saves data in FileModel object. If it doesnt exist create TmpFile object """ - file_path = forms.FileField(label='Выберите файл') + file_path = forms.FileField(label=_(u'Выберите файл')) #uses for comparing with TmpFile key key = forms.CharField(required=False, widget=forms.HiddenInput()) model = forms.CharField(required=False, widget=forms.HiddenInput()) purposes = [(item1, item2) for item1, item2 in PURPOSES] - purpose = forms.ChoiceField(label='Назаначение', choices=purposes) + purpose = forms.ChoiceField(label=_(u'Назаначение'), choices=purposes) def __init__(self, *args, **kwargs): """ @@ -107,8 +107,8 @@ class FileModelForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['file_name_%s'%code] = forms.CharField(label='Имя файла',required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) - self.fields['description_%s'%code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget()) + self.fields['file_name_%s'%code] = forms.CharField(label=_(u'Имя файла'),required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) + self.fields['description_%s'%code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget()) def save(self, request, obj=None): """ @@ -168,7 +168,7 @@ class FileModelForm(forms.Form): return file_obj class PhotoForm(forms.Form): - file_path = forms.FileField(label='Выберите файл') + file_path = forms.FileField(label=_(u'Выберите файл')) # uses for comparing with TmpFile key key = forms.CharField(required=False, widget=forms.HiddenInput()) model = forms.CharField(required=False, widget=forms.HiddenInput()) @@ -185,8 +185,8 @@ class PhotoForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s'%code] = forms.CharField(label='Имя файла',required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) - self.fields['description_%s'%code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget()) + self.fields['name_%s'%code] = forms.CharField(label=_(u'Имя файла'),required=False, widget=forms.TextInput(attrs={'placeholder': 'Имя'})) + self.fields['description_%s'%code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget()) def save(self,request, obj=None): """ diff --git a/file/models.py b/file/models.py index c166a0a8..3136b1bb 100644 --- a/file/models.py +++ b/file/models.py @@ -14,14 +14,14 @@ import os FILE_TYPES = ('PDF', 'DOC', 'TXT', 'OTHER') IMG_TYPES = ('JPG', 'BMP', 'PNG', 'GIF',) -PURPOSES = (('photo', 'Фото'), - ('flat', 'Флаг'), - ('logo','Лого'), - ('map','Карта'), - ('scheme teritory','Схема територии'), - ('diplom','Дипломы'), - ('preview','Превью'), - ('preview2','Превью'), +PURPOSES = (('photo', _(u'Фото')), + ('flat', _(u'Флаг')), + ('logo',_(u'Лого')), + ('map',_(u'Карта')), + ('scheme teritory',_(u'Схема територии')), + ('diplom',_(u'Дипломы')), + ('preview',_(u'Превью')), + ('preview2',_(u'Превью')), ) class FileModel(TranslatableModel): @@ -138,4 +138,4 @@ class Photo(TranslatableModel): ) # created = models.DateTimeField(auto_now_add=True) - modified = models.DateTimeField(auto_now=True) \ No newline at end of file + modified = models.DateTimeField(auto_now=True) diff --git a/functions/custom_views.py b/functions/custom_views.py index 6bcf5705..5521f0ec 100644 --- a/functions/custom_views.py +++ b/functions/custom_views.py @@ -8,6 +8,8 @@ from django.contrib.auth.decorators import login_required from django.contrib.admin.views.decorators import staff_member_required from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage, InvalidPage from django.db.models.deletion import ProtectedError +from django.utils.translation import ugettext as _ + #forms and models from file.forms import FileModelForm from file.models import TmpFile @@ -214,7 +216,7 @@ def delete_object(request, Model, Form, url, prev_page,): object.delete() return HttpResponseRedirect(prev_page) except ProtectedError: - msg = u'Удаления %s требует удаления связаных объектов'%object + msg = _(u'Удаления %(object)s требует удаления связаных объектов') % {'object': object} return render_to_response('delete.html', {'msg':msg, 'prev_page':prev_page}) else: @@ -246,7 +248,7 @@ from webinar.models import Webinar from company.models import Company from photoreport.models import Photoreport -from django.utils.translation import ugettext as _ + class ExpoMixin(object): def get_params(self): model_names = {Exposition: _(u'Выставки'), Conference: _(u'Конференции'), Seminar: _(u'Семинары'), diff --git a/functions/form_check.py b/functions/form_check.py index 19b93f86..4aa6efc2 100644 --- a/functions/form_check.py +++ b/functions/form_check.py @@ -2,9 +2,10 @@ import unicodedata as ud from django.core.exceptions import ValidationError import pytils, re +from django.utils.translation import ugettext as _ def is_positive_integer(data, - msg='Введите правильное значение'): + msg=_(u'Введите правильное значение')): """ function checking if data positive integer """ diff --git a/functions/model_mixin.py b/functions/model_mixin.py index c1eba09d..b281d356 100644 --- a/functions/model_mixin.py +++ b/functions/model_mixin.py @@ -6,6 +6,7 @@ from functions.translate import fill_with_signal import calendar as python_calendar from service.models import Service from photologue.models import Gallery +from django.utils.translation import ugettext as _ class ExpoMixin(object): @@ -175,7 +176,7 @@ class EventMixin(object): Model = type(self) try: Model.objects.get(url=url) - return u'Событие с таким урлом уже существует' + return _(u'Событие с таким урлом уже существует') except Model.DoesNotExist: pass diff --git a/import_xls/admin.py b/import_xls/admin.py index c0820c30..e40504d5 100644 --- a/import_xls/admin.py +++ b/import_xls/admin.py @@ -11,6 +11,7 @@ from import_forms import ImportEventForm, ImportThemeForm, ImportTagForm, \ from export_forms import ExportEventForm, ExportThemeForm, ExportTagForm,\ ExportUserForm, ExportCompanyForm, ExportPlaceConferenceForm, ExportPlaceExpositionForm, ExportBlogForm,\ ExportCityForm +from django.utils.translation import ugettext as _ def xls_to_response(xls, fname): @@ -47,7 +48,7 @@ class ExportView(FormView): if workbook: f_name = form.get_fname() else: - messages.error(self.request, 'No objects found') + messages.error(self.request, _('No objects found')) return HttpResponseRedirect(self.success_url) return xls_to_response(workbook, f_name) @@ -174,4 +175,4 @@ def work_file(request, log_id): filename = 'import_%s_file.xls' % str(log.id) response['content-disposition'] = 'attachment;filename=%s'%filename response['X-Accel-Redirect'] = log.work_file.url - return response \ No newline at end of file + return response diff --git a/import_xls/export_forms.py b/import_xls/export_forms.py index 4f1bf333..0236bd88 100644 --- a/import_xls/export_forms.py +++ b/import_xls/export_forms.py @@ -14,6 +14,7 @@ from place_conference.models import PlaceConference from django.db.models.loading import get_model import xlwt from excel_settings import field_settings, event_export_sett +from django.utils.translation import ugettext as _ languages = [code for code in settings.LANGUAGES] @@ -33,7 +34,7 @@ class ExportForm(forms.Form): self.style.font = self.font model = None - language = forms.ChoiceField(label='Выберите язык', choices=languages) + language = forms.ChoiceField(label=_(u'Выберите язык'), choices=languages) def get_objects(self, data): return self.model.objects.language(data['language']).all() @@ -166,15 +167,15 @@ class ExportCityForm(ExportForm): class ExportEventForm(forms.Form): - event = forms.ChoiceField(label='Выберите тип события', choices=[('exposition.Exposition', 'Выставка'), - ('conference.Conference', 'Конференция'), - ('seminar.Seminar', 'Семинар'), - ('webinar.Webinar', 'Вебинар')]) - language = forms.ChoiceField(label='Выберите язык', choices=languages) - date_from = forms.DateField(label='С', input_formats=settings.CLIENT_DATE_FORMAT) - date_to = forms.DateField(label='До', input_formats=settings.CLIENT_DATE_FORMAT) - theme = forms.ModelMultipleChoiceField(label='Направление', queryset=Theme.objects.all(), required=False) - country = forms.ModelMultipleChoiceField(label='Страны', queryset=Country.objects.all(), required=False) + event = forms.ChoiceField(label=_(u'Выберите тип события'), choices=[('exposition.Exposition', _(u'Выставка')), + ('conference.Conference', _(u'Конференция')), + ('seminar.Seminar', _(u'Семинар')), + ('webinar.Webinar', _(u'Вебинар'))]) + language = forms.ChoiceField(label=_(u'Выберите язык'), choices=languages) + date_from = forms.DateField(label=_(u'С'), input_formats=settings.CLIENT_DATE_FORMAT) + date_to = forms.DateField(label=_(u'До'), input_formats=settings.CLIENT_DATE_FORMAT) + theme = forms.ModelMultipleChoiceField(label=_(u'Направление'), queryset=Theme.objects.all(), required=False) + country = forms.ModelMultipleChoiceField(label=_(u'Страны'), queryset=Country.objects.all(), required=False) def export(self): data = self.cleaned_data @@ -257,4 +258,4 @@ class ExportEventForm(forms.Form): if not country: return None - return country \ No newline at end of file + return country diff --git a/import_xls/import_forms.py b/import_xls/import_forms.py index 5afc2717..39b99f29 100644 --- a/import_xls/import_forms.py +++ b/import_xls/import_forms.py @@ -14,6 +14,7 @@ from excel_settings import import_settings from functions.form_check import translit_with_separator from excel_settings import place_exp_sett from import_xls.excel_settings import event_sett +from django.utils.translation import ugettext as _ languages = [code for code in settings.LANGUAGES] @@ -33,8 +34,8 @@ class ImportForm(forms.Form): abstract form for importing models from excel file to database """ model = None - excel_file = forms.FileField(label='Выберите файл') - language = forms.ChoiceField(label='Выберите язык', choices=languages) + excel_file = forms.FileField(label=_(u'Выберите файл')) + language = forms.ChoiceField(label=_(u'Выберите язык'), choices=languages) def save_file(self): data = self.cleaned_data @@ -340,7 +341,7 @@ class ImportPlaceExpositionForm(ImportForm): if typical_errors.get(error): error = typical_errors[error] if error.startswith('(1062, "Duplicate entry') and error.endswith('for key \'url\'")'): - error = u'Место с таким названием или урлом уже существует' + error = _(u'Место с таким названием или урлом уже существует') errors.append([obj.name, error]) continue @@ -367,10 +368,10 @@ class ImportEventForm(ImportForm): extended form for importing one type of event """ - event = forms.ChoiceField(label='Выберите тип события', choices=[('exposition.Exposition', 'Выставка'), - ('conference.Conference', 'Конференция'), - ('seminar.Seminar', 'Семинар'), - ('webinar.Webinar', 'Вебинар')]) + event = forms.ChoiceField(label=_(u'Выберите тип события'), choices=[('exposition.Exposition', _(u'Выставка')), + ('conference.Conference', _(u'Конференция')), + ('seminar.Seminar', _(u'Семинар')), + ('webinar.Webinar', _(u'Вебинар'))]) def save_file_debug(self): data = self.cleaned_data @@ -477,7 +478,7 @@ class ImportEventForm(ImportForm): error = typical_errors[error] if error.startswith('(1062, "Duplicate entry') and error.endswith('for key \'url\'")'): - error = u'Событие с таким названием или урлом уже существует' + error = _(u'Событие с таким названием или урлом уже существует') errors.append([obj.name, error]) log_msg += error @@ -648,4 +649,4 @@ class ImportTagForm(ImportForm): else: setattr(object, field_name, value[0]) - object.save() \ No newline at end of file + object.save() diff --git a/import_xls/utils.py b/import_xls/utils.py index 09133f5b..86782f6c 100644 --- a/import_xls/utils.py +++ b/import_xls/utils.py @@ -15,6 +15,7 @@ from theme.models import Theme, Tag from functions.files import get_alternative_filename from exposition.models import BIT_AUDIENCE from accounts.models import User +from django.utils.translation import ugettext as _ def to_int(val): @@ -91,11 +92,11 @@ def to_theme(obj, value): theme_ids = value.split(',') if theme_ids == ['']: - return u'Неправильное значение' + return _(u'Неправильное значение') obj.theme.clear() obj.theme.add(*Theme.objects.filter(id__in=theme_ids)) if not Theme.objects.filter(id__in=theme_ids).exists(): - return u'Нет совпадений' + return _(u'Нет совпадений') return None @@ -176,7 +177,7 @@ def save_logo(obj, path): try: alt_name = get_alternative_filename(full_path, file_name) except UnicodeEncodeError: - return u'Некоректное название файла' + return _(u'Некоректное название файла') download_to = full_path+alt_name @@ -194,7 +195,7 @@ def save_logo(obj, path): try: response = urllib2.urlopen(url, timeout=5) except: - return u'Превышено время ожидания' + return _(u'Превышено время ожидания') with open(download_to,'wb') as f: try: @@ -202,20 +203,20 @@ def save_logo(obj, path): f.close() except: # can be timeout - return u'Превышено время ожидания' + return _(u'Превышено время ожидания') try: # check if image im=Image.open(download_to) except IOError: os.remove(download_to) - return u'Неправильный формат логотипа' + return _(u'Неправильный формат логотипа') obj.logo = logo_path + alt_name try: obj.save() except: print('logo exception. logo: %s'%obj.logo) - return u'Неизвестная ошибка' + return _(u'Неизвестная ошибка') def check_quality_label(obj, value, label): @@ -234,4 +235,4 @@ def to_user(value): return User.objects.get(id=value) except User.DoesNotExist: - return User.objects.get(id=1) \ No newline at end of file + return User.objects.get(id=1) diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo deleted file mode 100644 index 9704e09c..00000000 Binary files a/locale/en/LC_MESSAGES/django.mo and /dev/null differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 301efef5..d9e8e613 100644 Binary files a/locale/en/LC_MESSAGES/django.po and b/locale/en/LC_MESSAGES/django.po differ diff --git a/locale/ru/LC_MESSAGES/django.mo b/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 00000000..e03702b0 Binary files /dev/null and b/locale/ru/LC_MESSAGES/django.mo differ diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 00000000..6a20bf1e --- /dev/null +++ b/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,10308 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-19 18:27+0000\n" +"PO-Revision-Date: 2016-05-19 12:48+0000\n" +"Last-Translator: \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Translated-Using: django-rosetta 0.7.6\n" + +#: accounts/admin.py:201 accounts/views.py:440 +msgid "Пароль изменен" +msgstr "Пароль изменен" + +#: accounts/admin.py:204 accounts/views.py:443 +msgid "Не правильный пароль" +msgstr "Не правильный пароль" + +#: accounts/edit_forms.py:12 company/edit_forms.py:15 +msgid "Выберите файл (GIF, JPG, PNG. Размер 100 × 100 пикселей)" +msgstr "Выберите файл (GIF, JPG, PNG. Размер 100 × 100 пикселей)" + +#: accounts/edit_forms.py:21 +msgid "Введите ваше имя" +msgstr "Введите ваше имя" + +#: accounts/edit_forms.py:22 +msgid "Введите вашу фамилию" +msgstr "Введите вашу фамилию" + +#: accounts/edit_forms.py:33 accounts/forms.py:70 accounts/forms.py:206 +#: accounts/forms.py:322 accounts/models.py:201 city/models.py:129 +#: company/forms.py:35 company/forms.py:227 company/models.py:42 +#: conference/forms.py:62 conference/models.py:56 +#: emencia/django/newsletter/admin_forms.py:12 +#: emencia/django/newsletter/forms.py:259 +#: emencia/django/newsletter/forms.py:283 expobanner/forms.py:248 +#: exposition/forms.py:59 exposition/models.py:66 +#: functions/search_forms.py:256 organiser/event_forms.py:21 +#: organiser/forms.py:35 organiser/models.py:39 place_conference/forms.py:34 +#: place_conference/models.py:39 place_exposition/forms.py:35 +#: seminar/forms.py:43 seminar/models.py:41 service/order_forms.py:16 +#: service/order_forms.py:194 specialist_catalog/models.py:20 +#: specialist_catalog/models.py:37 stats_collector/forms.py:18 +#: stats_collector/forms.py:68 templates/admin/specialist/catalog_all.html:13 +#: templates/client/includes/accounts/current_user.html:83 +#: templates/client/includes/company/company_edit.html:76 +#: templates/client/organiser/add_event.html:119 translator/forms.py:102 +#: wizard/forms.py:31 +msgid "Город" +msgstr "" + +#: accounts/edit_forms.py:35 accounts/forms.py:68 accounts/forms.py:204 +#: accounts/forms.py:318 accounts/models.py:199 city/forms.py:29 +#: city/forms.py:172 city/models.py:35 company/edit_forms.py:40 +#: company/forms.py:32 company/forms.py:226 company/models.py:40 +#: conference/forms.py:53 conference/models.py:54 +#: emencia/django/newsletter/forms.py:184 +#: emencia/django/newsletter/forms.py:191 expobanner/forms.py:313 +#: expobanner/models.py:97 exposition/forms.py:51 exposition/forms.py:594 +#: exposition/models.py:64 functions/search_forms.py:252 +#: organiser/event_forms.py:20 organiser/forms.py:34 organiser/models.py:37 +#: place_conference/forms.py:32 place_conference/models.py:37 +#: place_exposition/forms.py:33 seminar/forms.py:40 seminar/models.py:40 +#: service/order_forms.py:15 service/order_forms.py:193 +#: specialist_catalog/models.py:21 specialist_catalog/models.py:38 +#: stats_collector/forms.py:19 stats_collector/forms.py:67 +#: templates/admin/specialist/catalog_all.html:12 +#: templates/client/organiser/add_event.html:116 translator/forms.py:104 +#: wizard/forms.py:28 +msgid "Страна" +msgstr "Страна" + +#: accounts/edit_forms.py:65 +msgid "Укажите вашу должность" +msgstr "Укажите вашу должность" + +#: accounts/edit_forms.py:67 +msgid "Укажите вашу компанию" +msgstr "Укажите вашу компанию" + +#: accounts/edit_forms.py:90 accounts/models.py:203 company/edit_forms.py:31 +msgid "Описание компании" +msgstr "Описание компании" + +#: accounts/edit_forms.py:99 accounts/edit_forms.py:100 +#: company/edit_forms.py:67 +msgid "Контактный телефон" +msgstr "Контактный телефон" + +#: accounts/edit_forms.py:117 company/edit_forms.py:83 company/forms.py:187 +#: core/forms.py:46 organiser/forms.py:219 place_conference/forms.py:229 +#: place_exposition/forms.py:177 service/order_forms.py:85 +msgid "Введите правильный телефон" +msgstr "" + +#: accounts/edit_forms.py:121 company/edit_forms.py:86 +#: emencia/django/newsletter/forms.py:70 service/order_forms.py:212 +#: templates/client/simple_pages/advertising_landing.html:437 +#: templates/client/simple_pages/participation_landing.html:309 +msgid "Ваш e-mail" +msgstr "" + +#: accounts/edit_forms.py:129 company/edit_forms.py:93 +msgid "Адрес вашего сайта" +msgstr "" + +#: accounts/edit_forms.py:137 accounts/models.py:210 company/edit_forms.py:100 +#: company/forms.py:239 company/models.py:52 organiser/models.py:52 +msgid "Facebook" +msgstr "" + +#: accounts/edit_forms.py:138 accounts/models.py:211 company/edit_forms.py:101 +#: company/forms.py:238 company/models.py:53 organiser/models.py:53 +msgid "Twitter" +msgstr "" + +#: accounts/edit_forms.py:139 accounts/models.py:213 company/edit_forms.py:102 +#: company/models.py:55 organiser/models.py:55 +msgid "В контакте" +msgstr "" + +#: accounts/edit_forms.py:140 accounts/models.py:212 company/edit_forms.py:103 +#: company/models.py:54 organiser/models.py:54 +msgid "LinkedIn" +msgstr "" + +#: accounts/edit_forms.py:148 +msgid "Немного о себе" +msgstr "" + +#: accounts/forms.py:30 +#, fuzzy +msgid "Пароль" +msgstr "Пароль изменен" + +#: accounts/forms.py:31 registration/forms.py:56 +#: templates/client/popups/register.html:40 +msgid "Повторите пароль" +msgstr "" + +#: accounts/forms.py:46 +msgid "Пользователь с таким email уже существует" +msgstr "" + +#: accounts/forms.py:53 +msgid "Пароли не совпадают" +msgstr "" + +#: accounts/forms.py:71 accounts/models.py:103 +msgid "Компания" +msgstr "" + +#: accounts/forms.py:152 country/forms.py:186 +#, fuzzy +msgid "Введите правильный код страны" +msgstr "Не правильный пароль" + +#: accounts/forms.py:159 +msgid "Old password" +msgstr "" + +#: accounts/forms.py:161 +msgid "Введите старый пароль" +msgstr "" + +#: accounts/forms.py:162 password_reset/forms.py:89 +msgid "New password" +msgstr "" + +#: accounts/forms.py:164 +msgid "Придумайте новый пароль" +msgstr "" + +#: accounts/forms.py:165 +msgid "Confirm password" +msgstr "" + +#: accounts/forms.py:168 +msgid "Повторите новый пароль" +msgstr "" + +#: accounts/forms.py:180 accounts/forms.py:181 +msgid "Пароли не совпадают!" +msgstr "" + +#: accounts/forms.py:189 accounts/forms.py:190 +msgid "Пароль должен содержать цифры и буквы" +msgstr "" + +#: accounts/forms.py:197 +msgid "" +"Получать приглашения, сообщения и другую корреспонденцию от пользователей " +"Expomap" +msgstr "" + +#: accounts/forms.py:198 +msgid "Получать обзор событий" +msgstr "" + +#: accounts/forms.py:199 +msgid "Получать новости" +msgstr "" + +#: accounts/forms.py:207 +msgid "url(обязательно)" +msgstr "" + +#: accounts/forms.py:243 company/forms.py:289 +msgid "url должен состоять только из латинских букв" +msgstr "" + +#: accounts/forms.py:247 +msgid "Пользователь с таким url уже существует" +msgstr "" + +#: accounts/forms.py:254 accounts/models.py:85 company/forms.py:49 +#: company/forms.py:234 company/models.py:51 +#: emencia/django/newsletter/forms.py:30 organiser/forms.py:56 +#: organiser/models.py:51 password_reset/forms.py:32 +#: place_conference/forms.py:45 place_conference/models.py:49 +#: place_exposition/forms.py:45 +msgid "Email" +msgstr "" + +#: accounts/forms.py:286 +msgid "Введите e-mail, имя или фамилию для запроса" +msgstr "" + +#: accounts/forms.py:312 expobanner/forms.py:314 expobanner/models.py:96 +#: functions/search_forms.py:245 organiser/event_forms.py:10 +#: service/order_forms.py:136 service/order_forms.py:171 +#: templates/client/accounts/feed.html:27 +#: templates/client/organiser/add_event.html:37 +#: templates/client/popups/theme.html:8 +msgid "Тематика" +msgstr "" + +#: accounts/forms.py:314 accounts/models.py:284 article/forms.py:23 +#: article/forms.py:159 article/models.py:35 company/forms.py:36 +#: company/forms.py:229 company/models.py:39 conference/forms.py:63 +#: conference/models.py:63 exposition/forms.py:60 exposition/models.py:72 +#: functions/search_forms.py:247 news/forms.py:35 news/models.py:35 +#: organiser/event_forms.py:11 organiser/forms.py:42 organiser/models.py:42 +#: seminar/forms.py:44 seminar/models.py:45 +#: templates/client/organiser/add_event.html:55 webinar/forms.py:37 +#: wizard/forms.py:32 +msgid "Теги" +msgstr "" + +#: accounts/forms.py:315 city/forms.py:58 city/models.py:44 +#: functions/search_forms.py:249 +msgid "Регион" +msgstr "" + +#: accounts/forms.py:328 accounts/forms.py:331 functions/search_forms.py:262 +#: functions/search_forms.py:265 service/order_forms.py:138 +#: service/order_forms.py:140 service/order_forms.py:161 +#: service/order_forms.py:163 templates/client/organiser/add_event.html:96 +#: templates/client/organiser/add_event.html:101 +msgid "дд.мм.гггг" +msgstr "" + +#: accounts/models.py:25 accounts/models.py:41 +msgid "Вы должни ввести электронную почту" +msgstr "" + +#: accounts/models.py:86 registration/forms.py:44 +msgid "First name" +msgstr "" + +#: accounts/models.py:87 registration/forms.py:49 +msgid "Last name" +msgstr "" + +#: accounts/models.py:88 city/models.py:130 +#: templates/client/includes/accounts/current_user.html:52 +#: templates/client/includes/company/company_edit.html:51 +#: templates/client/includes/company/company_object.html:19 +msgid "Рейтинг" +msgstr "" + +#: accounts/models.py:89 article/models.py:29 city/models.py:30 +#: city/models.py:128 country/models.py:88 +msgid "Url" +msgstr "" + +#: accounts/models.py:90 expobanner/models.py:31 expobanner/models.py:117 +msgid "Активный" +msgstr "" + +#: accounts/models.py:91 +msgid "Сотрудник?" +msgstr "" + +#: accounts/models.py:92 +msgid "Админ?" +msgstr "" + +#: accounts/models.py:93 conference/forms.py:382 +msgid "Дата создания" +msgstr "" + +#: accounts/models.py:94 +msgid "Дата регистрации" +msgstr "" + +#: accounts/models.py:95 +msgid "Изменен" +msgstr "" + +#: accounts/models.py:97 conference/forms.py:52 conference/models.py:65 +#: exposition/forms.py:47 exposition/forms.py:539 exposition/forms.py:559 +#: exposition/models.py:74 exposition/models.py:329 news/forms.py:36 +#: news/models.py:36 seminar/models.py:47 +#: templates/client/includes/conference/conference_object.html:163 +#: templates/client/includes/conference/conference_object.html:175 +#: templates/client/includes/conference/conference_paid.html:36 +#: templates/client/includes/conference/conference_paid.html:205 +#: templates/client/includes/conference/conference_paid.html:215 +#: templates/client/includes/exposition/expo_paid.html:34 +#: templates/client/includes/exposition/expo_paid.html:192 +#: templates/client/includes/exposition/exposition_object.html:173 +#: templates/client/includes/exposition/exposition_object.html:184 +#: templates/client/includes/exposition/programm.html:105 webinar/models.py:43 +msgid "Организатор" +msgstr "" + +#: accounts/models.py:100 +msgid "Переводчик" +msgstr "" + +#: accounts/models.py:105 settings/models.py:23 settings/models.py:69 +#: templates/admin/expobanner/comment_list.html:16 +#: templates/admin/expobanner/pcomment_list.html:16 +msgid "Должность" +msgstr "" + +#: accounts/models.py:106 +msgid "Заблокирован?" +msgstr "" + +#: accounts/models.py:204 company/forms.py:43 company/forms.py:231 +#: company/models.py:48 organiser/forms.py:50 organiser/models.py:48 +#: place_conference/forms.py:39 place_conference/models.py:46 +#: place_exposition/forms.py:39 +msgid "Телефон" +msgstr "" + +#: accounts/models.py:205 +msgid "Показывать телефон" +msgstr "" + +#: accounts/models.py:206 conference/models.py:80 exposition/models.py:136 +#: seminar/models.py:57 webinar/models.py:53 +msgid "Вебсайт" +msgstr "" + +#: accounts/models.py:207 +#: templates/client/includes/accounts/simple_user.html:101 +msgid "О себе" +msgstr "" + +#: accounts/models.py:208 city/models.py:134 core/views.py:125 +#: file/models.py:17 specialist_catalog/models.py:22 +#: templates/client/photoreport.html:9 templates/client/photoreport.html:15 +#: templates/client/conference/photo.html:11 +#: templates/client/exposition/photo.html:11 +#: templates/client/place/photo.html:11 +msgid "Фото" +msgstr "" + +#: accounts/models.py:209 +msgid "Skype" +msgstr "" + +#: accounts/models.py:226 accounts/views.py:402 +#: emencia/django/newsletter/templates/newsletter/announce_template.html:39 +#: exposition/models.py:252 functions/custom_views.py:254 service/forms.py:139 +#: service/models.py:156 stats_collector/forms.py:14 +#: stats_collector/forms.py:58 templates/client/exposition/catalog.html:9 +#: templates/client/exposition/catalog.html:34 +#: templates/client/exposition/catalog_theme.html:16 +#: templates/client/exposition/catalog_theme.html:59 +#: templates/client/exposition/exposition_by.html:14 +#: templates/client/exposition/exposition_detail.html:8 +#: templates/client/exposition/exposition_list.html:8 +#: templates/client/exposition/exposition_list.html:13 +#: templates/client/exposition/exposition_list.html:16 +#: templates/client/exposition/exposition_list.html:26 +#: templates/client/exposition/members.html:7 +#: templates/client/exposition/photo.html:7 +#: templates/client/exposition/price.html:7 +#: templates/client/exposition/programm.html:8 +#: templates/client/exposition/statistic.html:9 +#: templates/client/exposition/visitors.html:7 +#: templates/client/includes/event_list_description.html:5 +#: templates/client/includes/exposition/expo_paid.html:377 +#: templates/client/includes/exposition/expo_paid.html:378 +#: templates/client/includes/exposition/exposition_object.html:383 +#: templates/client/includes/exposition/exposition_object.html:384 +#: templates/client/includes/index/expos.html:3 +#: templates/client/service/catalog.html:9 +#: templates/client/service/participation.html:10 +#: templates/client/service/remotely.html:11 +#: templates/client/service/tickets.html:10 +#: templates/client/service/tour.html:10 +#: templates/client/service/translator.html:10 +msgid "Выставки" +msgstr "" + +#: accounts/models.py:227 +msgid "Конфеернции" +msgstr "" + +#: accounts/models.py:228 functions/custom_views.py:254 +msgid "Семинары" +msgstr "" + +#: accounts/models.py:229 functions/custom_views.py:255 +msgid "Вебинары" +msgstr "" + +#: accounts/models.py:283 article/forms.py:19 article/forms.py:112 +#: article/forms.py:157 article/models.py:33 company/forms.py:33 +#: company/forms.py:228 conference/forms.py:54 conference/models.py:61 +#: emencia/django/newsletter/admin_forms.py:69 +#: emencia/django/newsletter/forms.py:271 +#: emencia/django/newsletter/forms.py:296 +#: emencia/django/newsletter/models.py:251 expobanner/models.py:296 +#: exposition/forms.py:53 exposition/models.py:70 news/forms.py:33 +#: organiser/forms.py:36 seminar/forms.py:41 seminar/models.py:43 +#: webinar/models.py:39 wizard/forms.py:29 +msgid "Тематики" +msgstr "" + +#: accounts/models.py:285 +msgid "Геограифческие зоны" +msgstr "" + +#: accounts/models.py:286 emencia/django/newsletter/forms.py:275 +#: emencia/django/newsletter/forms.py:300 +#: emencia/django/newsletter/models.py:253 expobanner/models.py:298 +#: import_xls/export_forms.py:178 service/forms.py:141 service/models.py:154 +#: templates/client/accounts/translators/translator_country.html:8 +#: templates/client/includes/exposition/statistic.html:123 +#: translator/views.py:114 +msgid "Страны" +msgstr "" + +#: accounts/models.py:287 emencia/django/newsletter/models.py:254 +#: expobanner/models.py:299 +#: templates/client/accounts/translators/translator_city.html:12 +#: translator/views.py:92 +msgid "Города" +msgstr "" + +#: accounts/models.py:288 templates/client/includes/show_date_block.html:23 +#: templates/client/includes/index/main_date_block.html:23 +#: templates/client/organiser/add_event.html:94 +#: templates/client/popups/period.html:11 +#: templates/client/service/tour.html:69 +#: templates/client/service/translator.html:93 +#: templates/client/specialist_catalog/catalog_detailed.html:121 +#: templates/client/wizard/first_step.html:62 +msgid "с" +msgstr "" + +#: accounts/models.py:289 templates/client/organiser/add_event.html:198 +msgid "до" +msgstr "" + +#: accounts/views.py:416 functions/custom_views.py:254 service/forms.py:140 +#: service/models.py:157 stats_collector/forms.py:13 +#: stats_collector/forms.py:57 templates/client/conference/catalog.html:8 +#: templates/client/conference/catalog.html:27 +#: templates/client/conference/catalog_theme.html:8 +#: templates/client/conference/catalog_theme.html:52 +#: templates/client/conference/conference_by.html:14 +#: templates/client/conference/conference_detail.html:7 +#: templates/client/conference/conference_list.html:8 +#: templates/client/conference/conference_list.html:13 +#: templates/client/conference/conference_list.html:16 +#: templates/client/conference/conference_list.html:26 +#: templates/client/conference/members.html:7 +#: templates/client/conference/photo.html:7 +#: templates/client/conference/visitors.html:7 +#: templates/client/includes/side_confs.html:3 +#: templates/client/includes/conference/conference_object.html:358 +#: templates/client/includes/conference/conference_object.html:359 +#: templates/client/includes/conference/conference_paid.html:393 +#: templates/client/includes/conference/conference_paid.html:394 +msgid "Конференции" +msgstr "" + +#: article/forms.py:21 company/forms.py:30 expobanner/models.py:43 +#: expobanner/models.py:55 expobanner/models.py:93 +msgid "URL" +msgstr "" + +#: article/forms.py:22 article/models.py:45 +msgid "Дата публикации" +msgstr "" + +#: article/forms.py:24 file/models.py:19 settings/models.py:25 +#: settings/models.py:71 +msgid "Лого" +msgstr "" + +#: article/forms.py:38 article/forms.py:175 article/models.py:66 +#: expobanner/models.py:26 expobanner/models.py:88 meta/models.py:160 +#: news/forms.py:57 news/models.py:41 photologue/forms.py:22 +#: photologue/forms.py:54 service/forms.py:51 specialist_catalog/models.py:44 +#: templates/admin/article/article_admin_list.html:18 +#: templates/admin/specialist/catalog_all.html:11 +#: templates/admin/specialist/catalog_all.html:41 theme/forms.py:34 +#: theme/forms.py:101 theme/forms.py:178 +msgid "Заголовок" +msgstr "" + +#: article/forms.py:39 article/forms.py:176 article/models.py:67 +#: file/forms.py:20 file/models.py:23 file/models.py:24 news/forms.py:59 +#: news/models.py:42 +msgid "Превью" +msgstr "" + +#: article/forms.py:40 article/forms.py:177 city/forms.py:59 city/models.py:46 +#: company/forms.py:73 conference/forms.py:104 conference/models.py:107 +#: country/forms.py:88 exposition/forms.py:114 exposition/models.py:108 +#: file/forms.py:36 file/forms.py:111 file/forms.py:189 news/forms.py:60 +#: news/models.py:43 organiser/forms.py:77 organiser/models.py:67 +#: photologue/forms.py:23 photologue/forms.py:53 photoreport/forms.py:36 +#: seminar/forms.py:85 seminar/models.py:85 service/forms.py:52 +#: templates/client/city/city.html:94 +#: templates/client/country/country.html:108 theme/forms.py:35 +#: theme/forms.py:102 theme/forms.py:179 webinar/forms.py:78 +#: webinar/models.py:80 +msgid "Описание" +msgstr "" + +#: article/forms.py:42 article/forms.py:179 city/forms.py:66 +#: company/forms.py:79 conference/forms.py:113 country/forms.py:95 +#: news/forms.py:62 organiser/forms.py:84 photoreport/forms.py:39 +#: place_conference/forms.py:93 place_exposition/forms.py:94 +#: seminar/forms.py:90 service/forms.py:55 theme/forms.py:37 +#: theme/forms.py:104 translator/forms.py:56 webinar/forms.py:83 +msgid "Тайтл" +msgstr "" + +#: article/forms.py:44 article/forms.py:183 city/forms.py:68 +#: company/forms.py:83 conference/forms.py:117 country/forms.py:99 +#: news/forms.py:66 organiser/forms.py:88 photoreport/forms.py:41 +#: place_conference/forms.py:97 place_exposition/forms.py:98 +#: seminar/forms.py:94 translator/forms.py:60 webinar/forms.py:87 +msgid "Кейвордс" +msgstr "" + +#: article/forms.py:46 article/forms.py:181 city/forms.py:70 +#: company/forms.py:81 conference/forms.py:115 country/forms.py:97 +#: news/forms.py:64 organiser/forms.py:86 photoreport/forms.py:44 +#: place_conference/forms.py:95 place_exposition/forms.py:96 +#: seminar/forms.py:92 translator/forms.py:58 webinar/forms.py:85 +msgid "Дескрипшен" +msgstr "" + +#: article/forms.py:99 article/models.py:62 +#: templates/admin/article/article_admin_list.html:30 +msgid "Черновик" +msgstr "" + +#: article/forms.py:110 article/models.py:38 expobanner/forms.py:115 +#: expobanner/forms.py:148 expobanner/forms.py:312 +#: import_xls/export_forms.py:170 import_xls/import_forms.py:371 +#: news/forms.py:40 theme/models.py:37 +msgid "Выставка" +msgstr "" + +#: article/forms.py:111 article/models.py:39 expobanner/forms.py:132 +#: expobanner/forms.py:178 import_xls/export_forms.py:171 +#: import_xls/import_forms.py:372 news/forms.py:39 theme/models.py:38 +msgid "Конференция" +msgstr "" + +#: article/forms.py:154 article/models.py:36 +#: templates/admin/article/article_admin_list.html:19 +msgid "Автор" +msgstr "" + +#: article/forms.py:232 +msgid "Статья с таким названием уже существует" +msgstr "" + +#: article/forms.py:279 article/forms.py:305 article/forms.py:318 +#: templates/client/wizard/first_step.html:24 +msgid "Тематика:" +msgstr "" + +#: article/forms.py:281 article/forms.py:297 article/forms.py:310 +#: templates/client/wizard/first_step.html:28 theme/models.py:175 +msgid "Теги:" +msgstr "" + +#: article/models.py:31 +msgid "Id из старой базы" +msgstr "" + +#: article/models.py:32 organiser/event_forms.py:29 +#: specialist_catalog/models.py:34 +#: templates/client/organiser/add_event.html:224 +msgid "Логотип" +msgstr "" + +#: article/models.py:34 +msgid "Тематики для блогов" +msgstr "" + +#: article/models.py:41 conference/forms.py:82 expobanner/models.py:243 +#: place_conference/models.py:42 service/forms.py:138 +#: stats_collector/forms.py:37 +msgid "Тип" +msgstr "" + +#: article/models.py:43 +msgid "Позволить коментарии" +msgstr "" + +#: article/models.py:46 +msgid "Expires on" +msgstr "" + +#: article/models.py:47 +msgid "With Published chosen, won't be shown after this time" +msgstr "" + +#: article/models.py:49 +msgid "Show in sitemap" +msgstr "" + +#: article/models.py:52 +msgid "Показывать на главной" +msgstr "" + +#: article/models.py:56 +msgid "Generate description" +msgstr "" + +#: article/models.py:57 +msgid "" +"If checked, the description will be automatically generated from content. " +"Uncheck if you want to manually set a custom description." +msgstr "" + +#: article/models.py:68 +msgid "Основной текст" +msgstr "" + +#: article/views.py:184 article/views.py:236 conference/views.py:154 +#: exposition/forms.py:587 exposition/views.py:401 proj/settings.py:489 +#: settings/templatetags/tempalte_tags.py:21 support/dev/settings.py:485 +#: support/prod/settings.py:485 +msgid "Январь" +msgstr "" + +#: article/views.py:184 article/views.py:236 conference/views.py:154 +#: exposition/forms.py:587 exposition/views.py:401 proj/settings.py:489 +#: settings/templatetags/tempalte_tags.py:21 support/dev/settings.py:485 +#: support/prod/settings.py:485 +msgid "Февраль" +msgstr "" + +#: article/views.py:185 article/views.py:237 conference/views.py:155 +#: exposition/forms.py:587 exposition/views.py:402 proj/settings.py:490 +#: settings/templatetags/tempalte_tags.py:22 support/dev/settings.py:486 +#: support/prod/settings.py:486 +msgid "Март" +msgstr "" + +#: article/views.py:185 article/views.py:237 conference/views.py:155 +#: exposition/forms.py:587 exposition/views.py:402 proj/settings.py:490 +#: settings/templatetags/tempalte_tags.py:22 support/dev/settings.py:486 +#: support/prod/settings.py:486 +msgid "Апрель" +msgstr "" + +#: article/views.py:186 article/views.py:238 conference/views.py:156 +#: exposition/forms.py:588 exposition/views.py:403 proj/settings.py:491 +#: settings/templatetags/tempalte_tags.py:23 support/dev/settings.py:487 +#: support/prod/settings.py:487 +msgid "Май" +msgstr "" + +#: article/views.py:186 article/views.py:238 conference/views.py:156 +#: exposition/forms.py:588 exposition/views.py:403 proj/settings.py:491 +#: settings/templatetags/tempalte_tags.py:23 support/dev/settings.py:487 +#: support/prod/settings.py:487 +msgid "Июнь" +msgstr "" + +#: article/views.py:187 article/views.py:239 conference/views.py:157 +#: exposition/forms.py:588 exposition/views.py:404 proj/settings.py:492 +#: settings/templatetags/tempalte_tags.py:24 support/dev/settings.py:488 +#: support/prod/settings.py:488 +msgid "Июль" +msgstr "" + +#: article/views.py:187 article/views.py:239 conference/views.py:157 +#: exposition/forms.py:588 exposition/views.py:404 proj/settings.py:492 +#: settings/templatetags/tempalte_tags.py:24 support/dev/settings.py:488 +#: support/prod/settings.py:488 +msgid "Август" +msgstr "" + +#: article/views.py:188 article/views.py:240 conference/views.py:158 +#: exposition/forms.py:589 exposition/views.py:405 proj/settings.py:493 +#: settings/templatetags/tempalte_tags.py:25 support/dev/settings.py:489 +#: support/prod/settings.py:489 +msgid "Сентябрь" +msgstr "" + +#: article/views.py:188 article/views.py:240 conference/views.py:158 +#: exposition/forms.py:589 exposition/views.py:405 proj/settings.py:493 +#: settings/templatetags/tempalte_tags.py:25 support/dev/settings.py:489 +#: support/prod/settings.py:489 +msgid "Октябрь" +msgstr "" + +#: article/views.py:189 article/views.py:241 conference/views.py:159 +#: exposition/forms.py:589 exposition/views.py:406 proj/settings.py:494 +#: settings/templatetags/tempalte_tags.py:26 support/dev/settings.py:490 +#: support/prod/settings.py:490 +msgid "Ноябрь" +msgstr "" + +#: article/views.py:189 article/views.py:241 conference/views.py:159 +#: exposition/forms.py:589 exposition/views.py:406 proj/settings.py:494 +#: settings/templatetags/tempalte_tags.py:26 support/dev/settings.py:490 +#: support/prod/settings.py:490 +msgid "Декабрь" +msgstr "" + +#: city/forms.py:32 city/forms.py:33 city/models.py:39 country/models.py:98 +#: templates/client/city/city.html:40 templates/client/country/country.html:56 +msgid "Население" +msgstr "" + +#: city/forms.py:34 city/forms.py:35 +msgid "Код города" +msgstr "" + +#: city/forms.py:36 +msgid "Код IATA" +msgstr "" + +#: city/forms.py:37 +msgid "Inflect" +msgstr "" + +#: city/forms.py:38 city/models.py:31 conference/forms.py:48 +#: country/forms.py:60 country/models.py:93 exposition/forms.py:43 +#: organiser/forms.py:43 organiser/models.py:45 place_conference/forms.py:31 +#: place_exposition/forms.py:31 place_exposition/models.py:82 +msgid "Logo" +msgstr "" + +#: city/forms.py:57 city/models.py:43 city/models.py:141 company/forms.py:72 +#: conference/forms.py:101 conference/models.py:105 country/forms.py:87 +#: country/models.py:28 exposition/forms.py:110 exposition/models.py:106 +#: functions/admin_forms.py:26 organiser/forms.py:75 organiser/models.py:65 +#: photoreport/forms.py:35 place_conference/forms.py:86 +#: place_exposition/forms.py:86 seminar/forms.py:82 seminar/models.py:83 +#: theme/forms.py:33 theme/forms.py:100 theme/forms.py:177 webinar/forms.py:75 +#: webinar/models.py:78 +msgid "Название" +msgstr "" + +#: city/forms.py:61 city/models.py:47 +msgid "Знаменитые места" +msgstr "" + +#: city/forms.py:63 +msgid "Шопинг" +msgstr "" + +#: city/forms.py:64 city/models.py:45 country/forms.py:89 +#: templates/client/city/city.html:51 +msgid "Транспорт" +msgstr "" + +#: city/forms.py:152 +#, fuzzy +msgid "Введите правильный телефонный код" +msgstr "Не правильный пароль" + +#: city/models.py:32 +msgid "Url старой бд" +msgstr "" + +#: city/models.py:34 country/models.py:91 +msgid "Склонение" +msgstr "" + +#: city/models.py:37 +msgid "IATA" +msgstr "" + +#: city/models.py:40 +msgid "Тел. код " +msgstr "" + +#: city/models.py:48 +msgid "Магазины" +msgstr "" + +#: city/models.py:131 +msgid "Клас отеля" +msgstr "" + +#: city/models.py:132 country/models.py:103 +msgid "Широта" +msgstr "" + +#: city/models.py:133 country/models.py:104 +msgid "Долгота" +msgstr "" + +#: city/models.py:135 conference/forms.py:75 country/models.py:97 +#: exposition/forms.py:76 seminar/forms.py:57 service/forms.py:31 +#: specialist_catalog/models.py:33 templates/client/country/country.html:62 +#: webinar/forms.py:49 +msgid "Валюта" +msgstr "" + +#: city/models.py:136 +msgid "Мин. цена" +msgstr "" + +#: city/models.py:137 +msgid "Макс. цена" +msgstr "" + +#: city/models.py:138 +msgid "Проверено" +msgstr "" + +#: city/models.py:142 company/forms.py:41 organiser/forms.py:48 +#: place_exposition/forms.py:37 seminar/forms.py:46 +msgid "Адрес" +msgstr "" + +#: company/edit_forms.py:22 company/forms.py:266 +msgid "Введите название компании" +msgstr "" + +#: company/edit_forms.py:151 +msgid "Подробное описание компании" +msgstr "" + +#: company/edit_forms.py:159 +msgid "Адрес компании" +msgstr "" + +#: company/forms.py:30 +#, fuzzy +msgid "Введите URL" +msgstr "Введите ваше имя" + +#: company/forms.py:38 company/forms.py:39 company/forms.py:236 +#: company/models.py:47 organiser/forms.py:45 organiser/forms.py:46 +#: organiser/models.py:58 +#: templates/client/includes/company/company_edit.html:466 +msgid "Количество сотрудников" +msgstr "" + +#: company/forms.py:44 organiser/forms.py:51 place_conference/forms.py:40 +#: place_exposition/forms.py:40 +#, fuzzy +msgid "Введите телефон" +msgstr "Контактный телефон" + +#: company/forms.py:46 organiser/forms.py:53 place_conference/forms.py:42 +#: place_exposition/forms.py:42 +#, fuzzy +msgid "Введите факс" +msgstr "Введите ваше имя" + +#: company/forms.py:47 company/forms.py:233 company/models.py:50 +#: organiser/forms.py:54 organiser/models.py:50 place_conference/forms.py:43 +#: place_exposition/forms.py:43 +#: templates/client/includes/conference/conference_object.html:186 +#: templates/client/includes/conference/conference_paid.html:224 +#: templates/client/includes/exposition/expo_paid.html:202 +#: templates/client/includes/exposition/exposition_object.html:195 +msgid "Веб-сайт" +msgstr "" + +#: company/forms.py:48 organiser/forms.py:55 place_conference/forms.py:44 +#: place_exposition/forms.py:44 +#, fuzzy +msgid "Введите адрес сайта" +msgstr "Введите ваше имя" + +#: company/forms.py:50 organiser/forms.py:57 place_conference/forms.py:46 +#: place_exposition/forms.py:46 templates/client/popups/acquire_email.html:5 +msgid "Введите email" +msgstr "" + +#: company/forms.py:51 +msgid "Социальные страници" +msgstr "" + +#: company/forms.py:52 company/forms.py:53 company/forms.py:235 +#: company/models.py:56 conference/forms.py:70 conference/models.py:100 +#: exposition/forms.py:66 exposition/models.py:137 organiser/forms.py:60 +#: organiser/forms.py:61 organiser/models.py:56 place_conference/forms.py:37 +#: place_conference/forms.py:38 place_conference/models.py:50 +#: place_exposition/forms.py:48 place_exposition/forms.py:49 +#: seminar/forms.py:49 seminar/models.py:78 +#: templates/client/includes/company/company_edit.html:434 webinar/forms.py:41 +#: webinar/models.py:73 +msgid "Год основания" +msgstr "" + +#: company/forms.py:75 company/models.py:60 organiser/forms.py:76 +#: organiser/models.py:66 translator/forms.py:48 +msgid "Специализация" +msgstr "" + +#: company/forms.py:76 company/models.py:62 organiser/forms.py:81 +#: organiser/models.py:69 +msgid "Доп инф по адресу" +msgstr "" + +#: company/forms.py:142 company/forms.py:294 service/forms.py:114 +msgid "Такой урл уже занят" +msgstr "" + +#: company/forms.py:206 organiser/forms.py:238 place_conference/forms.py:248 +#: place_exposition/forms.py:196 +#, fuzzy +msgid "Введите правильный факс" +msgstr "Не правильный пароль" + +#: company/forms.py:220 company/forms.py:255 +msgid "название" +msgstr "" + +#: company/forms.py:221 company/forms.py:258 +#: templates/client/includes/company/company_edit.html:133 +msgid "краткое описание компании" +msgstr "" + +#: company/forms.py:222 company/forms.py:260 +#: templates/client/includes/company/company_edit.html:182 +msgid "адрес компании" +msgstr "" + +#: company/forms.py:223 company/forms.py:256 +msgid "подробное описание компании" +msgstr "" + +#: company/forms.py:232 company/models.py:49 organiser/forms.py:52 +#: organiser/models.py:49 place_conference/forms.py:41 +#: place_conference/models.py:47 place_exposition/forms.py:41 +msgid "Факс" +msgstr "" + +#: company/forms.py:237 +msgid "в контакте" +msgstr "" + +#: company/forms.py:240 +msgid "Linkedin" +msgstr "" + +#: company/forms.py:267 +msgid "Введите url(только латиница)" +msgstr "" + +#: company/models.py:28 +msgid "Участники:" +msgstr "" + +#: company/models.py:35 exposition/models.py:62 +msgid "Создатель" +msgstr "" + +#: company/models.py:37 organiser/models.py:41 +msgid "Отрасль" +msgstr "" + +#: company/models.py:59 specialist_catalog/models.py:102 +#, fuzzy +msgid "Название компании" +msgstr "Описание компании" + +#: company/models.py:61 +#: templates/client/includes/company/company_edit.html:499 +msgid "О компании" +msgstr "" + +#: company/models.py:73 +msgid "Заблокирована?" +msgstr "" + +#: conference/forms.py:38 emencia/django/newsletter/forms.py:378 +#: exposition/forms.py:35 exposition/models.py:25 wizard/forms.py:15 +msgid "Не выбрано" +msgstr "" + +#: conference/forms.py:38 exposition/forms.py:35 exposition/models.py:233 +#: wizard/forms.py:10 +msgid "Ежегодно" +msgstr "" + +#: conference/forms.py:38 exposition/forms.py:35 exposition/models.py:233 +#: wizard/forms.py:10 +msgid "2 раза в год" +msgstr "" + +#: conference/forms.py:38 exposition/forms.py:35 exposition/models.py:233 +#: wizard/forms.py:10 +msgid "3 раза в год" +msgstr "" + +#: conference/forms.py:39 exposition/forms.py:36 exposition/models.py:234 +#: wizard/forms.py:10 +msgid "4 раза в год" +msgstr "" + +#: conference/forms.py:39 exposition/forms.py:36 exposition/models.py:234 +#: wizard/forms.py:11 +msgid "5 раз в год" +msgstr "" + +#: conference/forms.py:39 exposition/forms.py:36 exposition/models.py:234 +#: wizard/forms.py:11 +msgid "Раз в 2 года" +msgstr "" + +#: conference/forms.py:39 exposition/forms.py:36 exposition/models.py:235 +#: wizard/forms.py:12 +msgid "Раз в 3 года" +msgstr "" + +#: conference/forms.py:40 exposition/forms.py:37 exposition/models.py:235 +#: wizard/forms.py:12 +msgid "Раз в 4 года" +msgstr "" + +#: conference/forms.py:40 exposition/forms.py:37 exposition/models.py:235 +msgid "Раз в 5 лет" +msgstr "" + +#: conference/forms.py:46 conference/models.py:50 exposition/forms.py:41 +#: exposition/models.py:58 seminar/models.py:37 stats_collector/forms.py:26 +#: webinar/models.py:37 +msgid "Дата начала" +msgstr "" + +#: conference/forms.py:47 conference/models.py:51 exposition/forms.py:42 +#: exposition/models.py:59 seminar/models.py:38 stats_collector/forms.py:27 +msgid "Дата окончания" +msgstr "" + +#: conference/forms.py:57 conference/models.py:58 conference/models.py:243 +#: exposition/forms.py:55 exposition/forms.py:561 exposition/models.py:68 +#: exposition/models.py:330 exposition/models.py:352 +#: templates/client/accounts/feed.html:39 +#: templates/client/organiser/add_event.html:111 wizard/forms.py:30 +msgid "Место проведения" +msgstr "" + +#: conference/forms.py:59 +msgid "Альтернативное название места" +msgstr "" + +#: conference/forms.py:65 emencia/django/newsletter/forms.py:264 +#: exposition/forms.py:62 organiser/event_forms.py:24 +#: templates/client/includes/conference/conference_object.html:198 +#: templates/client/includes/conference/conference_paid.html:236 +#: templates/client/includes/exposition/expo_paid.html:214 +#: templates/client/includes/exposition/exposition_object.html:207 +#: templates/client/organiser/add_event.html:137 +msgid "Периодичность" +msgstr "" + +#: conference/forms.py:66 exposition/forms.py:63 organiser/event_forms.py:23 +#: templates/client/includes/conference/conference_object.html:192 +#: templates/client/includes/conference/conference_paid.html:230 +#: templates/client/includes/exposition/expo_paid.html:208 +#: templates/client/includes/exposition/exposition_object.html:201 +#: templates/client/organiser/add_event.html:127 +msgid "Аудитория" +msgstr "" + +#: conference/forms.py:68 exposition/forms.py:64 seminar/forms.py:47 +#: webinar/forms.py:39 +#, fuzzy +msgid "Веб страница" +msgstr "Страна" + +#: conference/forms.py:69 conference/models.py:81 seminar/forms.py:48 +#: seminar/models.py:58 webinar/forms.py:40 webinar/models.py:54 +msgid "Линк на регистрацию" +msgstr "" + +#: conference/forms.py:71 conference/models.py:102 conference/models.py:213 +#: exposition/forms.py:67 exposition/forms.py:472 exposition/models.py:88 +#: exposition/models.py:301 functions/custom_views.py:255 seminar/forms.py:51 +#: seminar/models.py:80 seminar/models.py:163 +#: templates/client/company/companies_list.html:7 +#: templates/client/company/companies_list.html:15 +#: templates/client/company/company_detail.html:7 +#: templates/client/company/search.html:8 +#: templates/client/conference/members.html:11 +#: templates/client/exposition/members.html:11 +#: templates/client/includes/conference/conference_object.html:25 +#: templates/client/includes/conference/conference_paid.html:25 +#: templates/client/includes/exposition/expo_paid.html:237 +#: templates/client/includes/exposition/expo_paid.html:259 +#: templates/client/includes/exposition/exposition_object.html:27 +#: templates/client/includes/exposition/exposition_object.html:235 +#: templates/client/includes/exposition/exposition_object.html:257 +#: webinar/forms.py:43 webinar/models.py:75 webinar/models.py:162 +msgid "Участники" +msgstr "" + +#: conference/forms.py:72 conference/models.py:212 exposition/forms.py:68 +#: exposition/forms.py:471 exposition/models.py:87 exposition/models.py:300 +#: seminar/forms.py:50 seminar/models.py:162 +#: templates/client/conference/visitors.html:11 +#: templates/client/exposition/visitors.html:11 +#: templates/client/exposition/visitors.html:17 +#: templates/client/includes/conference/conference_object.html:22 +#: templates/client/includes/conference/conference_object.html:254 +#: templates/client/includes/conference/conference_paid.html:22 +#: templates/client/includes/conference/conference_paid.html:287 +#: templates/client/includes/exposition/expo_paid.html:269 +#: templates/client/includes/exposition/exposition_object.html:24 +#: templates/client/includes/exposition/exposition_object.html:267 +#: webinar/forms.py:42 webinar/models.py:161 +msgid "Посетители" +msgstr "" + +#: conference/forms.py:73 exposition/forms.py:70 seminar/forms.py:52 +#: webinar/forms.py:44 +msgid "Cкидка(%)" +msgstr "" + +#: conference/forms.py:76 exposition/forms.py:81 seminar/forms.py:58 +#: webinar/forms.py:50 +msgid "Налог включен" +msgstr "" + +#: conference/forms.py:77 conference/models.py:87 seminar/forms.py:59 +#: seminar/models.py:63 webinar/forms.py:51 webinar/models.py:59 +msgid "Минимальная цена" +msgstr "" + +#: conference/forms.py:78 conference/models.py:88 seminar/forms.py:60 +#: seminar/models.py:64 webinar/forms.py:52 webinar/models.py:60 +msgid "Максимальная цена" +msgstr "" + +#: conference/forms.py:79 exposition/forms.py:90 exposition/models.py:90 +#: seminar/forms.py:61 webinar/forms.py:54 +msgid "Expohit" +msgstr "" + +#: conference/forms.py:80 exposition/forms.py:91 seminar/forms.py:62 +#: webinar/forms.py:55 +msgid "Отменена" +msgstr "" + +#: conference/forms.py:81 exposition/forms.py:92 seminar/forms.py:63 +#: webinar/forms.py:56 +msgid "Перенесена" +msgstr "" + +#: conference/forms.py:102 conference/models.py:106 exposition/forms.py:112 +#: exposition/models.py:107 organiser/event_forms.py:14 +#: place_conference/forms.py:30 place_conference/forms.py:87 +#: place_exposition/forms.py:87 seminar/forms.py:83 seminar/models.py:84 +#: specialist_catalog/models.py:45 webinar/forms.py:76 webinar/models.py:79 +msgid "Краткое описание" +msgstr "" + +#: conference/forms.py:106 conference/models.py:109 exposition/forms.py:116 +#: exposition/models.py:111 +#: templates/client/includes/conference/conference_object.html:202 +#: templates/client/includes/conference/conference_paid.html:240 +#: templates/client/includes/exposition/expo_paid.html:222 +#: templates/client/includes/exposition/exposition_object.html:215 +#: templates/client/organiser/add_event.html:167 +msgid "Время работы" +msgstr "" + +#: conference/forms.py:108 conference/models.py:108 +msgid "Основные темы" +msgstr "" + +#: conference/forms.py:110 conference/models.py:110 exposition/forms.py:131 +#: exposition/models.py:110 +#, fuzzy +msgid "Описание скидки" +msgstr "Описание компании" + +#: conference/forms.py:317 seminar/forms.py:265 webinar/forms.py:253 +msgid "Организаторы" +msgstr "" + +#: conference/forms.py:318 conference/models.py:68 exposition/models.py:78 +#: seminar/forms.py:266 seminar/models.py:49 webinar/forms.py:254 +#: webinar/models.py:45 +#, fuzzy +msgid "Компании" +msgstr "Описание компании" + +#: conference/forms.py:319 seminar/forms.py:267 webinar/forms.py:255 +msgid "Пользователи" +msgstr "" + +#: conference/forms.py:359 exposition/forms.py:535 +msgid "Время начала" +msgstr "" + +#: conference/forms.py:360 exposition/forms.py:537 +msgid "Время окончания" +msgstr "" + +#: conference/models.py:41 +msgid "Конференции:" +msgstr "" + +#: conference/models.py:70 exposition/models.py:80 seminar/models.py:51 +#: webinar/models.py:47 +msgid "Посетители выставки" +msgstr "" + +#: conference/models.py:78 exposition/models.py:134 +msgid "Переодичность" +msgstr "" + +#: conference/models.py:82 exposition/models.py:89 seminar/models.py:59 +#: templates/client/includes/conference/conference_object.html:30 +#: templates/client/includes/conference/conference_paid.html:30 +#: templates/client/includes/exposition/expo_paid.html:28 +#: templates/client/includes/exposition/exposition_object.html:32 +#: templates/client/includes/exposition/price.html:29 +#: templates/client/includes/exposition/programm.html:33 +#: templates/client/includes/exposition/statistic.html:30 webinar/models.py:55 +msgid "Скидка" +msgstr "" + +#: conference/models.py:86 exposition/models.py:146 seminar/models.py:62 +#: webinar/models.py:58 +msgid "Налог" +msgstr "" + +#: conference/models.py:101 seminar/models.py:79 webinar/models.py:74 +msgid "Посетитеил" +msgstr "" + +#: conference/models.py:211 exposition/forms.py:470 exposition/forms.py:597 +#: exposition/models.py:299 seminar/models.py:161 webinar/models.py:160 +msgid "Год" +msgstr "" + +#: conference/models.py:214 exposition/forms.py:71 exposition/forms.py:473 +#: exposition/models.py:138 exposition/models.py:302 +msgid "Площадь" +msgstr "" + +#: conference/models.py:215 exposition/models.py:303 +msgid "Количество стран" +msgstr "" + +#: conference/models.py:231 expobanner/models.py:303 exposition/models.py:319 +#: exposition/models.py:339 +msgid "Начало" +msgstr "" + +#: conference/models.py:232 expobanner/models.py:304 exposition/models.py:320 +#: exposition/models.py:340 +msgid "Конец" +msgstr "" + +#: conference/models.py:240 exposition/forms.py:555 exposition/models.py:327 +#: exposition/models.py:349 +msgid "Название программы" +msgstr "" + +#: conference/models.py:241 exposition/forms.py:557 exposition/models.py:328 +#: exposition/models.py:350 +msgid "Программа" +msgstr "" + +#: conference/models.py:242 exposition/models.py:351 +#: templates/client/includes/conference/conference_object.html:222 +#: templates/client/includes/conference/conference_object.html:243 +#: templates/client/includes/conference/conference_paid.html:255 +#: templates/client/includes/conference/conference_paid.html:276 +msgid "Спикеры" +msgstr "" + +#: conference/views.py:60 exposition/views.py:58 place_exposition/views.py:164 +#: templates/client/includes/side_confs.html:7 +#: templates/client/includes/side_places.html:6 +#: templates/client/includes/translators_aside.html:6 +msgid "По странам" +msgstr "" + +#: conference/views.py:61 +msgid "Коференции мира по странам" +msgstr "" + +#: conference/views.py:74 exposition/views.py:90 +msgid "По тегам" +msgstr "" + +#: conference/views.py:75 +msgid "Коференции мира по тегам" +msgstr "" + +#: conference/views.py:86 exposition/views.py:74 +#: templates/client/includes/side_confs.html:6 +msgid "По тематикам" +msgstr "" + +#: conference/views.py:87 +msgid "Коференции мира по тематикам" +msgstr "" + +#: conference/views.py:101 exposition/views.py:102 +#: place_exposition/views.py:174 templates/client/includes/side_confs.html:8 +#: templates/client/includes/side_places.html:7 +#: templates/client/includes/translators_aside.html:7 +msgid "По городам" +msgstr "" + +#: conference/views.py:102 +msgid "Коференции мира по городам" +msgstr "" + +#: conference/views.py:377 +msgid "Ваш запрос был успешно отправлен" +msgstr "" + +#: conference/views.py:567 +#, python-format +msgid "" +"конференция: %(expo_name)s\n" +" Контактное лицо:%(name)s\n" +"Email: %(email)s\n" +"телефон:%(phone)s\n" +" вопрос:%(question)s" +msgstr "" + +#: conference/views.py:568 +msgid "Проплаченная конференция" +msgstr "" + +#: core/forms.py:15 functions/forms.py:33 +#: templates/client/company/search.html:9 +#: templates/client/company/search.html:15 +#: templates/client/exposition/search.html:8 +#: templates/client/exposition/search.html:14 +#: templates/client/place/search.html:9 templates/client/place/search.html:15 +msgid "Поиск" +msgstr "" + +#: core/forms.py:16 functions/forms.py:34 functions/search_forms.py:32 +#: templates/client/includes/catalog_search_main.html:25 +msgid "Где" +msgstr "" + +#: core/models.py:22 +msgid "Ближайшие выставки на expomap.ru" +msgstr "" + +#: core/models.py:24 +msgid "Подписывайтесь на наш RSS-канал" +msgstr "" + +#: core/models.py:48 +#, python-format +msgid "Ближайшие выставки %(obj)s:" +msgstr "" + +#: core/models.py:67 +#, python-format +msgid "Ближайшие выставки в %(obj)s: " +msgstr "" + +#: core/models.py:86 +#, python-format +msgid "Ближайшие выставки %(obj)s: " +msgstr "" + +#: core/simple_views.py:28 +#, python-format +msgid "" +"Имя: %(fname)s;\n" +" Фамилия:%(lname)s;\n" +" Email: %(email)s;\n" +" Телефон: %(phone)s;\n" +" компния: %(company)s;\n" +" должность: %(office)s" +msgstr "" + +#: core/simple_views.py:39 +msgid "" +"Мы получили Ваш запрос и очень рады, что Вам интересно участие в семинаре " +"Expomap. Если места еще есть, мы пришлем Вам приглашение на указанную Вами " +"электронную почту.\n" +" Увидимся на welcome-coffee ☺" +msgstr "" + +#: core/simple_views.py:42 +msgid "" +"Благодарим за интерес к нашему семинару! За несколько дней до мероприятия " +"мы пришлем Вам ссылку для подключения к онлайн-трансляции!" +msgstr "" + +#: core/views.py:22 place_conference/models.py:102 +#: place_exposition/models.py:159 templates/client/includes/side_places.html:3 +#: templates/client/place/catalog.html:8 +#: templates/client/place/catalog.html:16 +#: templates/client/place/catalog_by.html:14 +#: templates/client/place/photo.html:7 +#: templates/client/place/place_detail.html:7 +#: templates/client/place/place_list.html:7 +#: templates/client/place/place_list.html:14 +#: templates/client/place/search.html:8 +msgid "Места" +msgstr "" + +#: country/forms.py:47 +msgid "Валюты" +msgstr "" + +#: country/forms.py:48 specialist_catalog/models.py:19 translator/forms.py:49 +msgid "Языки" +msgstr "" + +#: country/forms.py:50 country/forms.py:51 +msgid "Население(млн)" +msgstr "" + +#: country/forms.py:53 +msgid "Територия(км2)" +msgstr "" + +#: country/forms.py:54 templates/client/country/country.html:49 +msgid "Часовые пояса" +msgstr "" + +#: country/forms.py:55 country/forms.py:56 +msgid "Код страны" +msgstr "" + +#: country/forms.py:57 country/forms.py:58 +msgid "Срок выдачи" +msgstr "" + +#: country/forms.py:91 +msgid "Правила въезда" +msgstr "" + +#: country/forms.py:92 templates/client/country/country.html:144 +msgid "Документы" +msgstr "" + +#: country/forms.py:93 +msgid "Консульство" +msgstr "" + +#: country/forms.py:106 country/forms.py:111 country/models.py:95 +#: templates/client/country/country.html:38 +msgid "Столица" +msgstr "" + +#: country/forms.py:106 country/forms.py:108 +msgid "Нет городов в стране" +msgstr "" + +#: country/forms.py:108 country/forms.py:113 +msgid "Большие города" +msgstr "" + +#: country/forms.py:200 +#, fuzzy +msgid "Введите правильное население" +msgstr "Не правильный пароль" + +#: country/models.py:89 +msgid "Старый урл" +msgstr "" + +#: country/models.py:92 +msgid "Географическая зона" +msgstr "" + +#: country/models.py:94 +msgid "Большые города" +msgstr "" + +#: country/models.py:99 +msgid "Територия" +msgstr "" + +#: country/models.py:100 +msgid "Часовой пояс" +msgstr "" + +#: country/models.py:101 +msgid "Тел. Код страны" +msgstr "" + +#: country/models.py:107 +msgid "Код страны(Alpha2)" +msgstr "" + +#: django_messages/admin.py:21 +msgid "group" +msgstr "" + +#: django_messages/admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: django_messages/admin.py:30 +msgid "All users" +msgstr "" + +#: django_messages/admin.py:48 django_messages/models.py:94 +msgid "Message" +msgstr "" + +#: django_messages/admin.py:55 +msgid "Date/time" +msgstr "" + +#: django_messages/apps.py:6 django_messages/models.py:95 +msgid "Messages" +msgstr "" + +#: django_messages/fields.py:56 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "" + +#: django_messages/forms.py:17 django_messages/forms.py:66 +#: django_messages/models.py:55 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:8 +msgid "Subject" +msgstr "" + +#: django_messages/forms.py:18 django_messages/forms.py:46 +#: django_messages/forms.py:67 django_messages/models.py:56 +msgid "Body" +msgstr "" + +#: django_messages/forms.py:65 django_messages/models.py:58 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/view.html:14 +msgid "Recipient" +msgstr "" + +#: django_messages/management.py:9 +msgid "Message Received" +msgstr "" + +#: django_messages/management.py:9 +msgid "you have received a message" +msgstr "" + +#: django_messages/management.py:10 +msgid "Message Sent" +msgstr "" + +#: django_messages/management.py:10 +msgid "you have sent a message" +msgstr "" + +#: django_messages/management.py:11 +msgid "Message Replied" +msgstr "" + +#: django_messages/management.py:11 +msgid "you have replied to a message" +msgstr "" + +#: django_messages/management.py:12 +msgid "Reply Received" +msgstr "" + +#: django_messages/management.py:12 +msgid "you have received a reply to a message" +msgstr "" + +#: django_messages/management.py:13 +msgid "Message Deleted" +msgstr "" + +#: django_messages/management.py:13 +msgid "you have deleted a message" +msgstr "" + +#: django_messages/management.py:14 +msgid "Message Recovered" +msgstr "" + +#: django_messages/management.py:14 +msgid "you have undeleted a message" +msgstr "" + +#: django_messages/models.py:57 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:10 +msgid "Sender" +msgstr "" + +#: django_messages/models.py:59 +msgid "Parent message" +msgstr "" + +#: django_messages/models.py:60 +msgid "sent at" +msgstr "" + +#: django_messages/models.py:61 +msgid "read at" +msgstr "" + +#: django_messages/models.py:62 +msgid "replied at" +msgstr "" + +#: django_messages/models.py:63 +msgid "Sender deleted at" +msgstr "" + +#: django_messages/models.py:64 +msgid "Recipient deleted at" +msgstr "" + +#: django_messages/utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" + +#: django_messages/utils.py:54 +#, python-format +msgid "Re%(prefix)s: %(subject)s" +msgstr "" + +#: django_messages/utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "" + +#: django_messages/views.py:78 django_messages/views.py:114 +msgid "Message successfully sent." +msgstr "" + +#: django_messages/views.py:121 +#, python-format +msgid "Re: %(subject)s" +msgstr "" + +#: django_messages/views.py:157 +msgid "Message successfully deleted." +msgstr "" + +#: django_messages/views.py:184 +msgid "Message successfully recovered." +msgstr "" + +#: django_messages/templates/django_messages/base.html:9 +#: django_messages/templates/django_messages/inbox.html:6 +#: django_messages/templates/django_messages/new_message.html:13 +msgid "Inbox" +msgstr "" + +#: django_messages/templates/django_messages/base.html:10 +#: django_messages/templates/django_messages/outbox.html:6 +msgid "Sent Messages" +msgstr "" + +#: django_messages/templates/django_messages/base.html:11 +msgid "New Message" +msgstr "" + +#: django_messages/templates/django_messages/base.html:12 +msgid "Trash" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:10 +msgid "Send" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +msgid "Received" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: emencia/django/newsletter/templates/newsletter/newsletter_historic.html:25 +msgid "Action" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:22 +#: django_messages/templates/django_messages/outbox.html:19 +#: django_messages/templates/django_messages/trash.html:19 +#: django_messages/templates/django_messages/view.html:13 +msgid "DATETIME_FORMAT" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:23 +#: django_messages/templates/django_messages/outbox.html:20 +msgid "delete" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:29 +#: django_messages/templates/django_messages/outbox.html:26 +#: django_messages/templates/django_messages/trash.html:26 +msgid "No messages." +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:4 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:12 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:14 +#: django_messages/templates/django_messages/view.html:20 +msgid "Reply" +msgstr "" + +#: django_messages/templates/django_messages/outbox.html:10 +msgid "Sent" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:6 +msgid "Deleted Messages" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:12 +#: emencia/django/newsletter/templates/newsletter/newsletter_historic.html:23 +#: expobanner/models.py:271 +msgid "Date" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:20 +msgid "undelete" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:29 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" + +#: django_messages/templates/django_messages/view.html:6 +msgid "View Message" +msgstr "" + +#: django_messages/templates/django_messages/view.html:22 +msgid "Delete" +msgstr "" + +#: django_messages/templates/notification/messages_deleted/full.txt:1 +#, python-format +msgid "You have deleted the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s has sent you a message:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/short.txt:1 +#: django_messages/templates/notification/messages_reply_received/short.txt:1 +#, python-format +msgid "%(notice)s by %(message_sender)s" +msgstr "" + +#: django_messages/templates/notification/messages_recovered/full.txt:1 +#, python-format +msgid "You have recovered the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/full.txt:1 +#, python-format +msgid "" +"You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s replied to '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/full.txt:1 +#, python-format +msgid "You have sent the message '%(message)s' to %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:14 +#: emencia/django/newsletter/models.py:247 +msgid "Периодичность отправки" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:15 +#: emencia/django/newsletter/models.py:113 +#: emencia/django/newsletter/views/statistics.py:75 +msgid "first name" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:16 +#: emencia/django/newsletter/models.py:116 +msgid "subscriber" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:17 +#: emencia/django/newsletter/models.py:117 +msgid "valid email" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:18 +#: emencia/django/newsletter/models.py:118 +msgid "contact tester" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:68 +msgid "Импортировать подписчиков" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:95 +msgid "Тестовые контакты" +msgstr "" + +#: emencia/django/newsletter/admin_forms.py:97 +#: emencia/django/newsletter/models.py:371 +msgid "content" +msgstr "" + +#: emencia/django/newsletter/forms.py:54 +msgid "Mailing lists" +msgstr "" + +#: emencia/django/newsletter/forms.py:71 service/order_forms.py:211 +#: templates/client/simple_pages/advertising_landing.html:435 +#: templates/client/simple_pages/participation_landing.html:308 +msgid "Ваше имя" +msgstr "" + +#: emencia/django/newsletter/forms.py:132 +msgid "Создан с" +msgstr "" + +#: emencia/django/newsletter/forms.py:133 +msgid "Создан по" +msgstr "" + +#: emencia/django/newsletter/forms.py:134 +msgid "Не подтверждена подписка" +msgstr "" + +#: emencia/django/newsletter/forms.py:135 +msgid "Неалидный Email" +msgstr "" + +#: emencia/django/newsletter/forms.py:136 +msgid "Отписался" +msgstr "" + +#: emencia/django/newsletter/forms.py:188 file/forms.py:18 file/forms.py:90 +#: file/forms.py:171 import_xls/import_forms.py:37 +#, fuzzy +msgid "Выберите файл" +msgstr "Введите вашу фамилию" + +#: emencia/django/newsletter/forms.py:189 +msgid "Активные" +msgstr "" + +#: emencia/django/newsletter/forms.py:190 +msgid "Тестовые" +msgstr "" + +#: emencia/django/newsletter/forms.py:233 +msgid "Такой email уже есть в базе даных" +msgstr "" + +#: emencia/django/newsletter/forms.py:285 +#: templates/client/accounts/settings.html:131 +#: templates/client/popups/announces.html:5 +msgid "Получать анонсы" +msgstr "" + +#: emencia/django/newsletter/forms.py:286 +msgid "Выставки Северной Америки" +msgstr "" + +#: emencia/django/newsletter/forms.py:287 +msgid "Выставки Азии" +msgstr "" + +#: emencia/django/newsletter/forms.py:288 +msgid "Выставки Европы" +msgstr "" + +#: emencia/django/newsletter/models.py:38 +#: emencia/django/newsletter/models.py:281 +#: emencia/django/newsletter/models.py:539 photologue/models.py:809 +#: photologue/models.py:978 +msgid "name" +msgstr "" + +#: emencia/django/newsletter/models.py:39 +msgid "server host" +msgstr "" + +#: emencia/django/newsletter/models.py:40 +msgid "server user" +msgstr "" + +#: emencia/django/newsletter/models.py:41 +#: emencia/django/newsletter/models.py:43 +msgid "Leave it empty if the host is public." +msgstr "" + +#: emencia/django/newsletter/models.py:42 +msgid "server password" +msgstr "" + +#: emencia/django/newsletter/models.py:44 +msgid "server port" +msgstr "" + +#: emencia/django/newsletter/models.py:45 +msgid "server use TLS" +msgstr "" + +#: emencia/django/newsletter/models.py:47 +msgid "custom headers" +msgstr "" + +#: emencia/django/newsletter/models.py:48 +msgid "" +"key1: value1 key2: value2, splitted by return line.\n" +"Useful for passing some tracking headers if your provider allows it." +msgstr "" + +#: emencia/django/newsletter/models.py:50 +msgid "mails per hour" +msgstr "" + +#: emencia/django/newsletter/models.py:103 +msgid "SMTP server" +msgstr "" + +#: emencia/django/newsletter/models.py:104 +msgid "SMTP servers" +msgstr "" + +#: emencia/django/newsletter/models.py:112 +#: emencia/django/newsletter/views/statistics.py:76 +#: templates/client/includes/company/company_edit.html:368 +msgid "email" +msgstr "" + +#: emencia/django/newsletter/models.py:114 +#: emencia/django/newsletter/views/statistics.py:75 +msgid "last name" +msgstr "" + +#: emencia/django/newsletter/models.py:120 +msgid "activation code" +msgstr "" + +#: emencia/django/newsletter/models.py:129 +#: emencia/django/newsletter/models.py:291 +#: emencia/django/newsletter/models.py:390 +#: emencia/django/newsletter/models.py:448 +#: emencia/django/newsletter/models.py:514 +msgid "creation date" +msgstr "" + +#: emencia/django/newsletter/models.py:130 +#: emencia/django/newsletter/models.py:292 +#: emencia/django/newsletter/models.py:391 +msgid "modification date" +msgstr "" + +#: emencia/django/newsletter/models.py:149 +msgid "mail format" +msgstr "" + +#: emencia/django/newsletter/models.py:232 +#: emencia/django/newsletter/models.py:509 +msgid "contact" +msgstr "" + +#: emencia/django/newsletter/models.py:233 +#: emencia/django/newsletter/models.py:542 +msgid "contacts" +msgstr "" + +#: emencia/django/newsletter/models.py:241 +msgid "Раз в неделю" +msgstr "" + +#: emencia/django/newsletter/models.py:242 +msgid "Раз в 2 недели" +msgstr "" + +#: emencia/django/newsletter/models.py:243 +msgid "Раз в месяц" +msgstr "" + +#: emencia/django/newsletter/models.py:249 +msgid "Практикум экспонента" +msgstr "" + +#: emencia/django/newsletter/models.py:250 +msgid "Практикум организатора событий" +msgstr "" + +#: emencia/django/newsletter/models.py:252 +msgid "Географические зоны" +msgstr "" + +#: emencia/django/newsletter/models.py:282 photologue/models.py:176 +#: photologue/models.py:317 photologue/models.py:812 +msgid "description" +msgstr "" + +#: emencia/django/newsletter/models.py:284 +#: emencia/django/newsletter/models.py:296 +msgid "subscribers" +msgstr "" + +#: emencia/django/newsletter/models.py:286 +#: emencia/django/newsletter/models.py:300 +msgid "unsubscribers" +msgstr "" + +#: emencia/django/newsletter/models.py:349 +#: emencia/django/newsletter/models.py:374 +#: emencia/django/newsletter/cmsplugin_newsletter/models.py:15 +msgid "mailing list" +msgstr "" + +#: emencia/django/newsletter/models.py:350 +#: emencia/django/newsletter/models.py:544 +msgid "mailing lists" +msgstr "" + +#: emencia/django/newsletter/models.py:361 +msgid "draft" +msgstr "" + +#: emencia/django/newsletter/models.py:362 +msgid "waiting sending" +msgstr "" + +#: emencia/django/newsletter/models.py:363 +msgid "sending" +msgstr "" + +#: emencia/django/newsletter/models.py:364 +#: emencia/django/newsletter/models.py:498 +msgid "sent" +msgstr "" + +#: emencia/django/newsletter/models.py:365 +msgid "canceled" +msgstr "" + +#: emencia/django/newsletter/models.py:368 +#: emencia/django/newsletter/models.py:445 +#: emencia/django/newsletter/models.py:470 +#: emencia/django/newsletter/cmsplugin_newsletter/models.py:12 +#: photologue/models.py:175 photologue/models.py:302 photologue/models.py:698 +msgid "title" +msgstr "" + +#: emencia/django/newsletter/models.py:369 +msgid "" +"You can use the \"{{ UNIQUE_KEY }}\" variable for unique identifier within " +"the newsletter's title." +msgstr "" + +#: emencia/django/newsletter/models.py:371 +msgid "Or paste an URL." +msgstr "" + +#: emencia/django/newsletter/models.py:372 +msgid "" +"\n" +"\n" +"" +msgstr "" + +#: emencia/django/newsletter/models.py:375 +msgid "test contacts" +msgstr "" + +#: emencia/django/newsletter/models.py:378 +msgid "smtp server" +msgstr "" + +#: emencia/django/newsletter/models.py:380 +msgid "sender" +msgstr "" + +#: emencia/django/newsletter/models.py:382 +msgid "reply to" +msgstr "" + +#: emencia/django/newsletter/models.py:385 +#: emencia/django/newsletter/models.py:510 +msgid "status" +msgstr "" + +#: emencia/django/newsletter/models.py:386 +msgid "sending date" +msgstr "" + +#: emencia/django/newsletter/models.py:388 +msgid "Used for displaying the newsletter on the site." +msgstr "" + +#: emencia/django/newsletter/models.py:438 +#: emencia/django/newsletter/models.py:469 +#: emencia/django/newsletter/models.py:508 +#: emencia/django/newsletter/cmsplugin_newsletter/cms_plugins.py:13 +msgid "newsletter" +msgstr "" + +#: emencia/django/newsletter/models.py:439 +#: emencia/django/newsletter/models.py:546 +msgid "newsletters" +msgstr "" + +#: emencia/django/newsletter/models.py:446 organiser/forms.py:31 +msgid "url" +msgstr "" + +#: emencia/django/newsletter/models.py:458 +#: emencia/django/newsletter/models.py:511 +msgid "link" +msgstr "" + +#: emencia/django/newsletter/models.py:459 +msgid "links" +msgstr "" + +#: emencia/django/newsletter/models.py:471 +msgid "file to attach" +msgstr "" + +#: emencia/django/newsletter/models.py:475 +msgid "attachment" +msgstr "" + +#: emencia/django/newsletter/models.py:476 +msgid "attachments" +msgstr "" + +#: emencia/django/newsletter/models.py:497 +msgid "sent in test" +msgstr "" + +#: emencia/django/newsletter/models.py:499 +msgid "error" +msgstr "" + +#: emencia/django/newsletter/models.py:500 +msgid "invalid email" +msgstr "" + +#: emencia/django/newsletter/models.py:501 +msgid "opened" +msgstr "" + +#: emencia/django/newsletter/models.py:502 +msgid "opened on site" +msgstr "" + +#: emencia/django/newsletter/models.py:503 +msgid "link opened" +msgstr "" + +#: emencia/django/newsletter/models.py:504 +msgid "unsubscription" +msgstr "" + +#: emencia/django/newsletter/models.py:505 +msgid "announce no data" +msgstr "" + +#: emencia/django/newsletter/models.py:533 +msgid "contact mailing status" +msgstr "" + +#: emencia/django/newsletter/models.py:534 +msgid "contact mailing statuses" +msgstr "" + +#: emencia/django/newsletter/models.py:540 +msgid "permissions group" +msgstr "" + +#: emencia/django/newsletter/models.py:553 +msgid "workgroup" +msgstr "" + +#: emencia/django/newsletter/models.py:554 +msgid "workgroups" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:38 +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:188 +msgid "Status" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:39 +msgid "Advanced" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:71 +msgid "No relative object" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:73 +msgid "Related object" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:80 +msgid "Total subscriptions" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:85 +msgid "Export contacts as VCard" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:92 +msgid "Export contacts in Excel" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:97 +#, python-format +msgid "New mailinglist at %s" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:98 +#, python-format +msgid "New mailing list created in admin at %s" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:102 +msgid "" +"SQLite3 or a SpatialLite database type detected, please note you will be " +"limited to 999 contacts per mailing list." +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:114 +#, python-format +msgid "%s succesfully created." +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:117 +msgid "Create a mailinglist" +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:136 +#, python-format +msgid "%s contacts succesfully imported." +msgstr "" + +#: emencia/django/newsletter/admin/contact.py:138 +msgid "Contact importation" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:67 +msgid "Please select a least 2 mailing list." +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:79 +#, python-format +msgid "Merging list at %s" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:80 +#, python-format +msgid "Mailing list created by merging at %s" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:89 +#, python-format +msgid "%s succesfully created by merging." +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:92 +msgid "Merge selected mailinglists" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:98 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:24 +msgid "Excel" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:100 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:70 +msgid "VCard" +msgstr "" + +#: emencia/django/newsletter/admin/mailinglist.py:102 +msgid "Export" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:43 +msgid "Receivers" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:44 +msgid "Sending" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:45 +#: emencia/django/newsletter/admin/smtpserver.py:36 +msgid "Miscellaneous" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:81 +msgid "Default" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:108 +msgid "Unable to download HTML, due to errors within." +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:110 +msgid "Please install lxml for parsing an URL." +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:122 +msgid "View historic" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:123 +#: emencia/django/newsletter/admin/newsletter.py:132 +msgid "Not available" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:125 +msgid "Historic" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:131 +msgid "View statistics" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:134 +msgid "Statistics" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:144 +#: emencia/django/newsletter/views/admin_views.py:268 +msgid "Unable send newsletter, due to errors within HTML." +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:146 +#, python-format +msgid "%s succesfully sent." +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:148 +#, python-format +msgid "No test contacts assigned for %s." +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:149 +msgid "Send test email" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:157 +#, python-format +msgid "%s newletters are ready to send" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:158 +msgid "Make ready to send" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:167 +#, python-format +msgid "%s newletters are cancelled" +msgstr "" + +#: emencia/django/newsletter/admin/newsletter.py:168 +msgid "Cancel the sending" +msgstr "" + +#: emencia/django/newsletter/admin/smtpserver.py:18 +msgid "Invalid syntax, do not forget the \":\"." +msgstr "" + +#: emencia/django/newsletter/admin/smtpserver.py:20 +msgid "Invalid syntax, several assignments by line." +msgstr "" + +#: emencia/django/newsletter/admin/smtpserver.py:34 +msgid "Configuration" +msgstr "" + +#: emencia/django/newsletter/admin/smtpserver.py:57 +msgid "Check connection" +msgstr "" + +#: emencia/django/newsletter/admin/workgroup.py:18 +msgid "Contacts length" +msgstr "" + +#: emencia/django/newsletter/admin/workgroup.py:22 +msgid "Mailing List length" +msgstr "" + +#: emencia/django/newsletter/admin/workgroup.py:26 +msgid "Newsletter length" +msgstr "" + +#: emencia/django/newsletter/cmsplugin_newsletter/cms_plugins.py:15 +msgid "Subscription Form" +msgstr "" + +#: emencia/django/newsletter/cmsplugin_newsletter/models.py:13 +msgid "show description" +msgstr "" + +#: emencia/django/newsletter/cmsplugin_newsletter/models.py:14 +msgid "Show the mailing list's description." +msgstr "" + +#: emencia/django/newsletter/cmsplugin_newsletter/models.py:16 +msgid "Mailing List to subscribe to." +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:36 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:42 +msgid "Actions" +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:51 +#, python-format +msgid "Import %(name)ss" +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:58 +msgid "Add to a mailing list" +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:65 +#, python-format +msgid "Export %(name)s as VCard" +msgstr "" + +#: emencia/django/newsletter/templates/admin/newsletter/contact/change_list.html:70 +#, python-format +msgid "Export %(name)s as Excel" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:13 +#: password_reset/templates/password_reset/recovery_email_expo.html:20 +#: templates/client/newsletters/activation_template.html:20 +#: templates/registration/activation_email.html:20 +msgid "Выставки, конференции, семинары" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:19 +#: emencia/django/newsletter/templates/newsletter/announce_template.html:166 +#: password_reset/templates/password_reset/recovery_email_expo.html:26 +#: password_reset/templates/password_reset/recovery_email_expo.html:96 +#: templates/client/newsletters/activation_template.html:26 +#: templates/registration/activation_email.html:26 +#: templates/registration/activation_email.html:95 +msgid "СОБЫТИЯ" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:20 +#: emencia/django/newsletter/templates/newsletter/announce_template.html:167 +#: password_reset/templates/password_reset/recovery_email_expo.html:27 +#: password_reset/templates/password_reset/recovery_email_expo.html:97 +#: templates/client/newsletters/activation_template.html:27 +#: templates/registration/activation_email.html:27 +#: templates/registration/activation_email.html:96 +msgid "МЕСТА" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:21 +#: emencia/django/newsletter/templates/newsletter/announce_template.html:168 +#: password_reset/templates/password_reset/recovery_email_expo.html:28 +#: password_reset/templates/password_reset/recovery_email_expo.html:98 +#: templates/client/newsletters/activation_template.html:28 +#: templates/registration/activation_email.html:28 +#: templates/registration/activation_email.html:97 +msgid "УЧАСТНИКИ" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:39 +#: templates/client/popups/announce_subscription.html:12 +msgid "по тематике" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:69 +msgid "посмотреть все события" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:81 +#: templates/client/includes/news.html:6 +#: templates/client/includes/index/news.html:4 +msgid "Новости событий" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:113 +msgid "посмотреть все новости" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/announce_template.html:123 +msgid "Аналитика для профессионалов" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/base.html:10 +#: emencia/django/newsletter/templates/newsletter/base.html:13 +msgid "Emencia Django Newsletter" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:7 +#: templates/admin/hvad/deletion_not_allowed.html:6 +msgid "Home" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:10 +msgid "Importation" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:27 +msgid "Excel file (.xls)" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:31 +msgid "Import contacts from a Excel file." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:32 +msgid "Columns are [email][last name][first name][tags]." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:33 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:56 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:98 +msgid "All columns are optionnal excepting the email." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:38 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:61 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:81 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:103 +msgid "Import" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:47 +msgid "Text" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:50 +msgid "Text file (.txt, .csv)" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:54 +msgid "Import contacts from a text file, or a CSV file." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:55 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:97 +msgid "" +"Columns are [email][last name][first name][tags], splitted by a dot coma." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:73 +msgid "VCard file (.cvf)" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:77 +msgid "" +"Import contacts from your favorite mail client, by providing a VCard file." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/contact_import.html:90 +#: emencia/django/newsletter/templates/newsletter/contact_import.html:93 +msgid "Raw text" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_subscribe.html:4 +#: emencia/django/newsletter/templates/newsletter/mailing_list_subscribe.html:7 +msgid "Subscription to mailing list" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_subscribe.html:10 +msgid "Thanks for your subscription!" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_subscribe.html:16 +msgid "Validate this form to subscribe to the mailing lists." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_subscribe.html:21 +#: emencia/django/newsletter/templates/newsletter/cms/subscription_form.html:20 +msgid "Subscribe" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html:5 +#: emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html:16 +#: templates/client/newsletters/unsubscribe_form.html:8 +msgid "Отписаться" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/mailing_list_unsubscribe.html:12 +msgid "Вы уже отписаны отэтой рассылки" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_historic.html:9 +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:68 +msgid "Admin." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_historic.html:24 +msgid "Contact" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_link_site.html:5 +msgid "If you cannot see this email," +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_link_site.html:6 +msgid "click here" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html:6 +msgid "Чтобы отписаться от этой рассылки, перейдите" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_link_unsubscribe.html:6 +msgid "по ссылке" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:86 +#: emencia/django/newsletter/views/statistics.py:147 +msgid "Consultation histogram" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:89 +msgid "Period" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:112 +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:113 +msgid "Broadcasting statistics" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:115 +#: emencia/django/newsletter/views/statistics.py:139 +msgid "Total openings" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:120 +msgid "Openings on site" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:125 +msgid "Total openings unique" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:130 +msgid "Unknow delivery" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:135 +msgid "Unsubscriptions" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:140 +msgid "Openings average" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:148 +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:149 +msgid "Links statistics" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:151 +#: emencia/django/newsletter/views/statistics.py:143 +msgid "Total clicked links" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:156 +msgid "Total clicked links unique" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:161 +msgid "Clicked links by openings" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:166 +msgid "Clicked links average" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:178 +msgid "Report" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:180 +msgid "Download CSV report" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:185 +msgid "Informations" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:186 +msgid "Recipients" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:187 +msgid "View" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:190 +msgid "Sending date" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:193 +msgid "Tests sent" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:198 +msgid "Top Links" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:199 +msgid "Density map" +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/newsletter_statistics.html:208 +msgid "No Top Links yet." +msgstr "" + +#: emencia/django/newsletter/templates/newsletter/cms/subscription_form.html:8 +msgid "You have successfully subscribed to the mailing list!" +msgstr "" + +#: emencia/django/newsletter/utils/importation.py:52 +#, python-format +msgid "Mailing list created by importation at %s" +msgstr "" + +#: emencia/django/newsletter/utils/importation.py:53 +#, python-format +msgid "Contacts imported by %s." +msgstr "" + +#: emencia/django/newsletter/views/admin_views.py:270 +msgid "Нет тестовых контактов" +msgstr "" + +#: emencia/django/newsletter/views/mailing_list.py:111 +msgid "Настройки вашой подписки успешно сохранены" +msgstr "" + +#: emencia/django/newsletter/views/statistics.py:54 +#, python-format +msgid "Statistics of %s" +msgstr "" + +#: emencia/django/newsletter/views/statistics.py:76 +msgid "openings" +msgstr "" + +#: emencia/django/newsletter/views/statistics.py:139 +msgid "#val# openings" +msgstr "" + +#: emencia/django/newsletter/views/statistics.py:143 +msgid "#val# clicks" +msgstr "" + +#: emencia/django/newsletter/views/tracking.py:65 +#, python-format +msgid "Historic of %s" +msgstr "" + +#: expobanner/admin.py:81 +msgid "Список урлов" +msgstr "" + +#: expobanner/admin.py:86 +msgid "Список груп" +msgstr "" + +#: expobanner/admin.py:91 +msgid "Список банеров" +msgstr "" + +#: expobanner/admin.py:106 +msgid "Список ссылок" +msgstr "" + +#: expobanner/admin.py:230 templates/client/organiser/add_event.html:27 +msgid "выставка" +msgstr "" + +#: expobanner/admin.py:231 +msgid "выставок" +msgstr "" + +#: expobanner/admin.py:232 +msgid "выставку" +msgstr "" + +#: expobanner/admin.py:239 templates/client/organiser/add_event.html:28 +msgid "конференция" +msgstr "" + +#: expobanner/admin.py:240 +msgid "конференций" +msgstr "" + +#: expobanner/admin.py:241 +msgid "конференцию" +msgstr "" + +#: expobanner/forms.py:18 +msgid "Создать урл" +msgstr "" + +#: expobanner/forms.py:26 +msgid "Создать групу" +msgstr "" + +#: expobanner/forms.py:33 +msgid "Изменить групу" +msgstr "" + +#: expobanner/forms.py:41 +msgid "Создать банер" +msgstr "" + +#: expobanner/forms.py:49 +msgid "Отслеживаемую ссылку" +msgstr "" + +#: expobanner/forms.py:67 +#, fuzzy +msgid "Введите пароль:" +msgstr "Введите ваше имя" + +#: expobanner/forms.py:75 expobanner/forms.py:207 +msgid "Линк на билеты" +msgstr "" + +#: expobanner/forms.py:76 expobanner/forms.py:208 +msgid "Линк на участие" +msgstr "" + +#: expobanner/forms.py:77 expobanner/forms.py:209 +msgid "Линк на официальный сайт" +msgstr "" + +#: expobanner/forms.py:114 +msgid "Создать проплаченую выставку" +msgstr "" + +#: expobanner/forms.py:125 expobanner/forms.py:172 expobanner/forms.py:359 +msgid "Такой выставки не существует" +msgstr "" + +#: expobanner/forms.py:131 +msgid "Создать проплаченую конференцию" +msgstr "" + +#: expobanner/forms.py:142 expobanner/forms.py:202 +msgid "Такой конференции не существует" +msgstr "" + +#: expobanner/forms.py:147 +msgid "Добавить выставку на главную" +msgstr "" + +#: expobanner/forms.py:177 +msgid "Добавить конференцию на главную" +msgstr "" + +#: expobanner/forms.py:259 expobanner/forms.py:323 +msgid "Топ города" +msgstr "" + +#: expobanner/forms.py:311 +msgid "Создать выставку в топе" +msgstr "" + +#: expobanner/forms.py:364 +msgid "Изменить выставку" +msgstr "" + +#: expobanner/models.py:27 +msgid "URL or URL RegEx" +msgstr "" + +#: expobanner/models.py:28 +msgid "RegEx" +msgstr "" + +#: expobanner/models.py:29 +msgid "Sites" +msgstr "" + +#: expobanner/models.py:32 expobanner/models.py:61 expobanner/models.py:118 +msgid "Created At" +msgstr "" + +#: expobanner/models.py:33 expobanner/models.py:62 expobanner/models.py:119 +msgid "Updated At" +msgstr "" + +#: expobanner/models.py:44 expobanner/models.py:107 expobanner/models.py:194 +#: expobanner/models.py:220 +msgid "URLs" +msgstr "" + +#: expobanner/models.py:54 organiser/event_forms.py:12 +#: registration/forms.py:46 specialist_catalog/models.py:103 +#: templates/admin/article/blog_form.html:145 +#: templates/admin/expobanner/comment_list.html:15 +#: templates/admin/expobanner/pcomment_list.html:15 +#: templates/client/popups/register.html:12 +msgid "Имя" +msgstr "" + +#: expobanner/models.py:56 +msgid "Ширина" +msgstr "" + +#: expobanner/models.py:57 +msgid "Высота" +msgstr "" + +#: expobanner/models.py:58 +msgid "Скорость отображения" +msgstr "" + +#: expobanner/models.py:60 expobanner/models.py:250 expobanner/models.py:339 +#: templates/client/includes/event_list.html:28 +msgid "Активная" +msgstr "" + +#: expobanner/models.py:75 +msgid "Banner Group" +msgstr "" + +#: expobanner/models.py:76 +msgid "Banner Groups" +msgstr "" + +#: expobanner/models.py:89 +msgid "Alt" +msgstr "" + +#: expobanner/models.py:91 meta/models.py:163 +msgid "Текст" +msgstr "" + +#: expobanner/models.py:92 +msgid "Картинка" +msgstr "" + +#: expobanner/models.py:99 +msgid "Сорт" +msgstr "" + +#: expobanner/models.py:100 templates/client/popups/place.html:7 +msgid "Место" +msgstr "" + +#: expobanner/models.py:102 +msgid "Often" +msgstr "" + +#: expobanner/models.py:103 +msgid "A ten will display 10 times more often that a one." +msgstr "" + +#: expobanner/models.py:109 +msgid "HTML?" +msgstr "" + +#: expobanner/models.py:110 +msgid "Flash?" +msgstr "" + +#: expobanner/models.py:111 +msgid "Popup?" +msgstr "" + +#: expobanner/models.py:112 +msgid "Is Paid event link?" +msgstr "" + +#: expobanner/models.py:113 +msgid "Is simple link?" +msgstr "" + +#: expobanner/models.py:184 expobanner/models.py:218 +msgid "Banner" +msgstr "" + +#: expobanner/models.py:185 +msgid "Banners" +msgstr "" + +#: expobanner/models.py:193 expobanner/models.py:219 +msgid "Group" +msgstr "" + +#: expobanner/models.py:196 +msgid "User" +msgstr "" + +#: expobanner/models.py:197 +msgid "Clicked At" +msgstr "" + +#: expobanner/models.py:198 +msgid "IP" +msgstr "" + +#: expobanner/models.py:199 expobanner/models.py:201 +msgid "User Agent" +msgstr "" + +#: expobanner/models.py:200 +msgid "Page" +msgstr "" + +#: expobanner/models.py:208 +msgid "Type" +msgstr "" + +#: expobanner/models.py:222 +msgid "Data" +msgstr "" + +#: expobanner/models.py:223 +msgid "Views" +msgstr "" + +#: expobanner/models.py:224 +msgid "Clicks" +msgstr "" + +#: expobanner/models.py:225 +msgid "Unique Views" +msgstr "" + +#: expobanner/models.py:226 +msgid "Unique Clicks" +msgstr "" + +#: expobanner/models.py:294 +msgid "Каталог для топа" +msgstr "" + +#: expobanner/models.py:295 expobanner/models.py:338 photologue/forms.py:39 +msgid "Позиция" +msgstr "" + +#: expobanner/models.py:297 +msgid "Исключить теги" +msgstr "" + +#: expobanner/models.py:300 +msgid "Топ месяца" +msgstr "" + +#: expobanner/models.py:301 +msgid "Топ года" +msgstr "" + +#: expobanner/models.py:302 +msgid "Исключить города" +msgstr "" + +#: expobanner/stat_views.py:50 +#, fuzzy +msgid "Неправильный пароль" +msgstr "Не правильный пароль" + +#: exposition/forms.py:57 +msgid "Альтернативное место" +msgstr "" + +#: exposition/forms.py:65 exposition/models.py:140 +msgid "Ссылка на регистрацию" +msgstr "" + +#: exposition/forms.py:69 exposition/models.py:141 +msgid "Минимальная площадь" +msgstr "" + +#: exposition/forms.py:72 seminar/forms.py:53 webinar/forms.py:45 +msgid "Метки" +msgstr "" + +#: exposition/forms.py:77 +msgid "Срок подачи стенда" +msgstr "" + +#: exposition/forms.py:78 templates/client/includes/exposition/price.html:237 +msgid "Минимальный размер стенда" +msgstr "" + +#: exposition/forms.py:80 +msgid "Цена за каталог" +msgstr "" + +#: exposition/forms.py:82 exposition/models.py:147 +msgid "Минимальная цена закрытой НЕ оборудованной площади" +msgstr "" + +#: exposition/forms.py:83 exposition/models.py:149 +msgid "Максимальная цена закрытой НЕ оборудованной площади" +msgstr "" + +#: exposition/forms.py:84 exposition/models.py:151 +msgid "Минимальная цена закрытой оборудованной площади" +msgstr "" + +#: exposition/forms.py:85 exposition/models.py:153 +msgid "Максимальная цена закрытой оборудованной площади" +msgstr "" + +#: exposition/forms.py:86 exposition/models.py:155 +msgid "Минимальная цена открытой площади" +msgstr "" + +#: exposition/forms.py:87 exposition/models.py:157 +msgid "Максимальная цена открытой площади" +msgstr "" + +#: exposition/forms.py:88 +msgid "Регистрационны взнос" +msgstr "" + +#: exposition/forms.py:119 exposition/models.py:113 +msgid "Стоимость билета 1 день" +msgstr "" + +#: exposition/forms.py:122 exposition/models.py:114 +msgid "Стоимость билета все дни" +msgstr "" + +#: exposition/forms.py:124 exposition/models.py:115 +msgid "Стоимость на стойке 1 день" +msgstr "" + +#: exposition/forms.py:126 exposition/models.py:116 +msgid "Стоимость на стойке все дни" +msgstr "" + +#: exposition/forms.py:129 exposition/models.py:109 +#: organiser/event_forms.py:27 +#: templates/client/includes/exposition/expo_paid.html:218 +#: templates/client/includes/exposition/exposition_object.html:211 +#: templates/client/organiser/add_event.html:162 wizard/forms.py:42 +msgid "Экспонируемые продукты" +msgstr "" + +#: exposition/forms.py:133 exposition/forms.py:488 exposition/models.py:117 +msgid "Участвующие страны" +msgstr "" + +#: exposition/forms.py:135 exposition/models.py:118 +msgid "Условия предварительной регистрации" +msgstr "" + +#: exposition/forms.py:137 exposition/models.py:119 +msgid "Условия регистрации на стойке" +msgstr "" + +#: exposition/forms.py:139 exposition/models.py:120 +msgid "Примечание по посещению" +msgstr "" + +#: exposition/forms.py:141 exposition/models.py:121 +#, fuzzy +msgid "Примечание по участии" +msgstr "Описание компании" + +#: exposition/forms.py:145 +msgid "Meta title" +msgstr "" + +#: exposition/forms.py:147 +msgid "Meta keywords" +msgstr "" + +#: exposition/forms.py:149 +msgid "Meta description" +msgstr "" + +#: exposition/forms.py:251 +msgid "Выставка с таким названием уже существует" +msgstr "" + +#: exposition/forms.py:474 +msgid "Число стран" +msgstr "" + +#: exposition/forms.py:598 +msgid "Месяц" +msgstr "" + +#: exposition/models.py:26 proj/settings.py:486 +#: specialist_catalog/models.py:36 support/dev/settings.py:482 +#: support/prod/settings.py:482 +msgid "Специалисты" +msgstr "" + +#: exposition/models.py:27 proj/settings.py:486 support/dev/settings.py:482 +#: support/prod/settings.py:482 +msgid "Специалисты и потребители" +msgstr "" + +#: exposition/models.py:28 proj/settings.py:487 support/dev/settings.py:483 +#: support/prod/settings.py:483 +msgid "Широкая публика" +msgstr "" + +#: exposition/models.py:51 +msgid "Выставки:" +msgstr "" + +#: exposition/models.py:143 +msgid "Срок подачи заявки" +msgstr "" + +#: exposition/models.py:144 +msgid "Минимальный размер стэнда" +msgstr "" + +#: exposition/models.py:145 +msgid "Стоимость каталога" +msgstr "" + +#: exposition/models.py:159 +#: templates/client/includes/exposition/price.html:240 +msgid "Регистрационный взнос" +msgstr "" + +#: exposition/views.py:59 +msgid "Выставки мира по странам" +msgstr "" + +#: exposition/views.py:75 +msgid "Выставки мира по тематикам" +msgstr "" + +#: exposition/views.py:91 +msgid "Выставки мира по тегам" +msgstr "" + +#: exposition/views.py:103 +msgid "Выставки мира по городам" +msgstr "" + +#: exposition/views.py:650 +#, python-format +msgid "" +"выставка: %(expo_name)s\n" +" Контактное лицо:%(name)s\n" +"Email: %(email)s\n" +"телефон:%(phone)s\n" +" вопрос:%(question)s" +msgstr "" + +#: exposition/views.py:651 +msgid "Проплаченная выставка" +msgstr "" + +#: file/forms.py:20 +msgid "Схема территории" +msgstr "" + +#: file/forms.py:20 +msgid "Превью2" +msgstr "" + +#: file/forms.py:21 templates/admin/article/blog_form.html:146 +msgid "Назначение" +msgstr "" + +#: file/forms.py:35 file/forms.py:110 file/forms.py:188 +msgid "Имя файла" +msgstr "" + +#: file/forms.py:96 +msgid "Назаначение" +msgstr "" + +#: file/models.py:18 +msgid "Флаг" +msgstr "" + +#: file/models.py:20 +msgid "Карта" +msgstr "" + +#: file/models.py:21 +msgid "Схема територии" +msgstr "" + +#: file/models.py:22 +msgid "Дипломы" +msgstr "" + +#: file/models.py:131 photologue/models.py:453 +msgid "view count" +msgstr "" + +#: functions/admin_forms.py:27 +msgid "Часть названия" +msgstr "" + +#: functions/custom_fields.py:280 +#, python-format +msgid "%(month)s %(year)s" +msgstr "" + +#: functions/custom_views.py:56 +msgid "Page is not 'last', nor can it be converted to an int." +msgstr "" + +#: functions/custom_views.py:219 +#, python-format +msgid "Удаления %(object)s требует удаления связаных объектов" +msgstr "" + +#: functions/custom_views.py:255 +msgid "Фоторепортажи" +msgstr "" + +#: functions/custom_views.py:456 place_exposition/views.py:85 +#: place_exposition/views.py:110 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +#: functions/form_check.py:8 +#, fuzzy +msgid "Введите правильное значение" +msgstr "Не правильный пароль" + +#: functions/forms.py:15 templates/client/includes/footer.html:28 +#: templates/client/includes/menu.html:6 templates/client/popups/theme.html:15 +#: templates/client/service/tour.html:41 +msgid "выставки" +msgstr "" + +#: functions/forms.py:16 templates/client/includes/footer.html:29 +#: templates/client/includes/menu.html:7 +#: templates/client/includes/index/confs.html:3 +#: templates/client/popups/theme.html:18 +msgid "конференции" +msgstr "" + +#: functions/forms.py:17 +msgid "семинары" +msgstr "" + +#: functions/forms.py:18 +msgid "вебинары" +msgstr "" + +#: functions/model_mixin.py:179 +msgid "Событие с таким урлом уже существует" +msgstr "" + +#: functions/search_forms.py:31 +#: templates/client/includes/catalog_search_main.html:14 +msgid "Я ищу" +msgstr "" + +#: functions/search_forms.py:31 +msgid "Тематика, слово или название" +msgstr "" + +#: functions/search_forms.py:129 functions/search_forms.py:137 +#: functions/search_forms.py:147 functions/search_forms.py:156 +#: templates/client/includes/catalog_search.html:35 +#: templates/client/includes/catalog_search.html:43 +#: templates/client/includes/catalog_search.html:44 +#: templates/client/includes/catalog_search.html:50 +#: templates/client/includes/catalog_search.html:68 +#: templates/client/includes/catalog_search_main.html:41 +#: templates/client/includes/catalog_search_main.html:43 +#: templates/client/includes/catalog_search_main.html:50 +#: templates/client/includes/catalog_search_main.html:51 +#: templates/client/includes/catalog_search_main.html:57 +#: templates/client/includes/catalog_search_main.html:59 +msgid "Не важно" +msgstr "" + +#: functions/search_forms.py:133 functions/search_forms.py:151 +msgid " и еще " +msgstr "" + +#: functions/search_forms.py:133 functions/search_forms.py:151 +msgid "позиция" +msgstr "" + +#: functions/search_forms.py:133 functions/search_forms.py:151 +msgid "позиции" +msgstr "" + +#: functions/search_forms.py:133 functions/search_forms.py:151 +#: templates/client/includes/search_paginator.html:6 +msgid "позиций" +msgstr "" + +#: functions/search_forms.py:242 +msgid "ПОИСК СОБЫТИЙ" +msgstr "" + +#: import_xls/admin.py:51 +msgid "No objects found" +msgstr "" + +#: import_xls/export_forms.py:37 import_xls/export_forms.py:174 +#: import_xls/import_forms.py:38 +msgid "Выберите язык" +msgstr "" + +#: import_xls/export_forms.py:170 import_xls/import_forms.py:371 +msgid "Выберите тип события" +msgstr "" + +#: import_xls/export_forms.py:172 import_xls/import_forms.py:373 +#: theme/models.py:39 +msgid "Семинар" +msgstr "" + +#: import_xls/export_forms.py:173 import_xls/import_forms.py:374 +#: theme/models.py:40 +msgid "Вебинар" +msgstr "" + +#: import_xls/export_forms.py:175 +msgid "С" +msgstr "" + +#: import_xls/export_forms.py:176 +msgid "До" +msgstr "" + +#: import_xls/export_forms.py:177 +msgid "Направление" +msgstr "" + +#: import_xls/import_forms.py:344 +msgid "Место с таким названием или урлом уже существует" +msgstr "" + +#: import_xls/import_forms.py:481 +msgid "Событие с таким названием или урлом уже существует" +msgstr "" + +#: import_xls/utils.py:95 +#, fuzzy +msgid "Неправильное значение" +msgstr "Не правильный пароль" + +#: import_xls/utils.py:99 +msgid "Нет совпадений" +msgstr "" + +#: import_xls/utils.py:180 +msgid "Некоректное название файла" +msgstr "" + +#: import_xls/utils.py:198 import_xls/utils.py:206 +msgid "Превышено время ожидания" +msgstr "" + +#: import_xls/utils.py:213 +#, fuzzy +msgid "Неправильный формат логотипа" +msgstr "Не правильный пароль" + +#: import_xls/utils.py:219 +msgid "Неизвестная ошибка" +msgstr "" + +#: meta/forms.py:13 +msgid "Название страницы" +msgstr "" + +#: meta/forms.py:27 +msgid "Title" +msgstr "" + +#: meta/forms.py:29 service/forms.py:57 theme/forms.py:39 theme/forms.py:106 +msgid "Description" +msgstr "" + +#: meta/forms.py:31 service/forms.py:59 theme/forms.py:41 theme/forms.py:108 +msgid "Keywords" +msgstr "" + +#: meta/forms.py:33 +msgid "H1" +msgstr "" + +#: meta/models.py:16 meta/models.py:68 +msgid "январе" +msgstr "" + +#: meta/models.py:16 meta/models.py:68 +msgid "феврале" +msgstr "" + +#: meta/models.py:16 meta/models.py:68 +msgid "марте" +msgstr "" + +#: meta/models.py:16 meta/models.py:68 +msgid "апреле" +msgstr "" + +#: meta/models.py:17 meta/models.py:69 +msgid "мае" +msgstr "" + +#: meta/models.py:17 meta/models.py:69 +msgid "июне" +msgstr "" + +#: meta/models.py:17 meta/models.py:69 +msgid "июле" +msgstr "" + +#: meta/models.py:17 meta/models.py:69 +msgid "августе" +msgstr "" + +#: meta/models.py:18 meta/models.py:70 +msgid "сентябре" +msgstr "" + +#: meta/models.py:18 meta/models.py:70 +msgid "октябре" +msgstr "" + +#: meta/models.py:18 meta/models.py:70 +msgid "ноябре" +msgstr "" + +#: meta/models.py:18 meta/models.py:70 +msgid "декабре" +msgstr "" + +#: meta/models.py:157 +msgid "URL: www.expomap.ru" +msgstr "" + +#: meta/models.py:161 +msgid "Тайтл страницы" +msgstr "" + +#: meta/models.py:162 +msgid "Дескрипшн" +msgstr "" + +#: news/forms.py:29 news/models.py:32 templates/admin/stats/event_stat.html:19 +#: templates/admin/stats/section_stat.html:14 +#: templates/client/expobanners/banner_stat.html:73 +#: templates/client/expobanners/paid_stat.html:73 +msgid "Дата" +msgstr "" + +#: news/forms.py:30 +msgid "Тип новости" +msgstr "" + +#: news/forms.py:31 +msgid "Платная" +msgstr "" + +#: news/forms.py:39 +msgid "Тип события" +msgstr "" + +#: news/forms.py:41 stats_collector/forms.py:63 +msgid "Событие" +msgstr "" + +#: news/forms.py:128 +msgid "Новость с таким названием уже существует" +msgstr "" + +#: news/models.py:34 stats_collector/forms.py:21 stats_collector/forms.py:69 +msgid "Тема" +msgstr "" + +#: organiser/event_forms.py:13 +msgid "Введите назввание выставки" +msgstr "" + +#: organiser/event_forms.py:15 wizard/forms.py:23 +msgid "Краткое описание выставки (необязательно)" +msgstr "" + +#: organiser/event_forms.py:16 place_conference/forms.py:88 +#: place_exposition/forms.py:88 +msgid "Полное описание" +msgstr "" + +#: organiser/event_forms.py:17 templates/client/organiser/add_event.html:85 +#: wizard/forms.py:24 +msgid "Полное описание выставки" +msgstr "" + +#: organiser/event_forms.py:18 templates/client/organiser/add_event.html:178 +msgid "c" +msgstr "" + +#: organiser/event_forms.py:19 +#: templates/client/includes/show_date_block.html:31 +#: templates/client/includes/index/main_date_block.html:31 +#: templates/client/organiser/add_event.html:99 +#: templates/client/popups/period.html:15 +#: templates/client/service/tour.html:73 +#: templates/client/service/translator.html:101 +#: templates/client/specialist_catalog/catalog_detailed.html:129 +#: templates/client/wizard/first_step.html:66 +msgid "по" +msgstr "" + +#: organiser/event_forms.py:22 templates/client/organiser/add_event.html:108 +#: templates/client/wizard/first_step.html:77 +msgid "Локация" +msgstr "" + +#: organiser/event_forms.py:25 templates/client/organiser/add_event.html:148 +msgid "Членства и знаки качества" +msgstr "" + +#: organiser/event_forms.py:26 place_conference/models.py:48 +msgid "Веб сайт" +msgstr "" + +#: organiser/forms.py:37 +msgid "Места проведения выставок" +msgstr "" + +#: organiser/forms.py:39 +msgid "Места проведения конференций" +msgstr "" + +#: organiser/forms.py:58 place_conference/forms.py:91 +#: place_exposition/forms.py:92 +msgid "Количество мероприятий в год" +msgstr "" + +#: organiser/forms.py:59 +msgid "Количество" +msgstr "" + +#: organiser/forms.py:79 organiser/models.py:68 +msgid "Представительства" +msgstr "" + +#: organiser/models.py:44 place_conference/forms.py:36 +#: place_conference/models.py:44 place_exposition/models.py:55 +msgid "Адресс" +msgstr "" + +#: organiser/models.py:57 +msgid "Количество мероприятий" +msgstr "" + +#: password_reset/forms.py:14 +msgid "Sorry, this user doesn't exist." +msgstr "" + +#: password_reset/forms.py:31 +msgid "Username" +msgstr "" + +#: password_reset/forms.py:33 +msgid "Для восстановления пароля укажите email, который Вы регистрировали" +msgstr "" + +#: password_reset/forms.py:83 +msgid "Unable to find user." +msgstr "" + +#: password_reset/forms.py:93 +msgid "New password (confirm)" +msgstr "" + +#: password_reset/forms.py:98 +msgid "The two passwords didn't match." +msgstr "" + +#: password_reset/templates/password_reset/recovery_done.html:3 +#: templates/client/password_reset/recovery_done.html:5 +msgid "New password set" +msgstr "" + +#: password_reset/templates/password_reset/recovery_done.html:6 +#: templates/client/password_reset/recovery_done.html:19 +msgid "" +"Your password has successfully been reset. You can use it right now on the " +"login page." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:1 +#, python-format +msgid "Dear %(username)s," +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:3 +#, python-format +msgid "" +"You -- or someone pretending to be you -- has requested a password reset on " +"%(domain)s." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:5 +msgid "You can set your new password by following this link:" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:9 +msgid "" +"If you don't want to reset your password, simply ignore this email and it " +"will stay unchanged." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_expo.html:44 +msgid "Воостановление пароля на портале" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_expo.html:53 +#: templates/client/newsletters/activation_template.html:52 +#: templates/registration/activation_email.html:52 +msgid "Добрый день" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_expo.html:58 +msgid "Вы или кто-то еще сделал запрос на сброс пароля на сайте" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_expo.html:63 +msgid "" +"Вы можете восстановить доступ, нажав на кнопку ниже и указав новый пароль:" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_expo.html:68 +#, fuzzy +msgid "востановить пароль" +msgstr "Не правильный пароль" + +#: password_reset/templates/password_reset/recovery_email_expo.html:73 +msgid "" +"Если вы не хотите сбрасывать пароль, просто проигнорируйте это сообщение" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_subject.txt:1 +#, python-format +msgid "Password recovery on %(domain)s" +msgstr "" + +#: password_reset/templates/password_reset/recovery_form.html:5 +#: templates/client/password_reset/base.html:5 +#: templates/client/password_reset/base.html:11 +#: templates/client/password_reset/recovery_done.html:11 +#: templates/client/password_reset/reset.html:5 +#: templates/client/password_reset/reset.html:11 +#: templates/client/password_reset/reset_sent.html:8 +msgid "Password recovery" +msgstr "" + +#: password_reset/templates/password_reset/recovery_form.html:10 +msgid "Recover my password" +msgstr "" + +#: password_reset/templates/password_reset/reset.html:5 +#: templates/client/password_reset/reset.html:19 +#, python-format +msgid "" +"Sorry, this password reset link is invalid. You can still request a new one." +msgstr "" + +#: password_reset/templates/password_reset/reset.html:7 +#: templates/client/password_reset/reset.html:21 +#, python-format +msgid "Hi, %(username)s. Please choose your new password." +msgstr "" + +#: password_reset/templates/password_reset/reset.html:11 +#: templates/client/password_reset/reset.html:43 +msgid "Set new password" +msgstr "" + +#: password_reset/templates/password_reset/reset_sent.html:4 +msgid "Password recovery sent" +msgstr "" + +#: password_reset/templates/password_reset/reset_sent.html:7 +#: templates/client/password_reset/reset_sent.html:15 +#, python-format +msgid "" +"An email was sent to %(email)s %(ago)s ago. Use the link in " +"it to set a new password." +msgstr "" + +#: photologue/forms.py:38 +msgid "Изображение" +msgstr "" + +#: photologue/models.py:60 +msgid "Separate tags with spaces, put quotes around multiple-word tags." +msgstr "" + +#: photologue/models.py:71 +msgid "Django-tagging was not found, tags will be treated as plain text." +msgstr "" + +#: photologue/models.py:122 +msgid "Very Low" +msgstr "" + +#: photologue/models.py:123 +msgid "Low" +msgstr "" + +#: photologue/models.py:124 +msgid "Medium-Low" +msgstr "" + +#: photologue/models.py:125 +msgid "Medium" +msgstr "" + +#: photologue/models.py:126 +msgid "Medium-High" +msgstr "" + +#: photologue/models.py:127 +msgid "High" +msgstr "" + +#: photologue/models.py:128 +msgid "Very High" +msgstr "" + +#: photologue/models.py:133 +msgid "Top" +msgstr "" + +#: photologue/models.py:134 +msgid "Right" +msgstr "" + +#: photologue/models.py:135 +msgid "Bottom" +msgstr "" + +#: photologue/models.py:136 +msgid "Left" +msgstr "" + +#: photologue/models.py:137 +msgid "Center (Default)" +msgstr "" + +#: photologue/models.py:141 +msgid "Flip left to right" +msgstr "" + +#: photologue/models.py:142 +msgid "Flip top to bottom" +msgstr "" + +#: photologue/models.py:143 +msgid "Rotate 90 degrees counter-clockwise" +msgstr "" + +#: photologue/models.py:144 +msgid "Rotate 90 degrees clockwise" +msgstr "" + +#: photologue/models.py:145 +msgid "Rotate 180 degrees" +msgstr "" + +#: photologue/models.py:149 +msgid "Tile" +msgstr "" + +#: photologue/models.py:150 +msgid "Scale" +msgstr "" + +#: photologue/models.py:161 +#, python-format +msgid "" +"Chain multiple filters using the following pattern \"FILTER_ONE->FILTER_TWO-" +">FILTER_THREE\". Image filters will be applied in order. The following " +"filters are available: %s." +msgstr "" + +#: photologue/models.py:178 +msgid "date published" +msgstr "" + +#: photologue/models.py:181 +msgid "title slug" +msgstr "" + +#: photologue/models.py:183 photologue/models.py:702 +msgid "A \"slug\" is a unique URL-friendly title for an object." +msgstr "" + +#: photologue/models.py:186 photologue/models.py:320 photologue/models.py:707 +msgid "is public" +msgstr "" + +#: photologue/models.py:188 +msgid "Public galleries will be displayed in the default views." +msgstr "" + +#: photologue/models.py:192 photologue/models.py:721 +msgid "photos" +msgstr "" + +#: photologue/models.py:198 photologue/models.py:327 photologue/models.py:710 +msgid "tags" +msgstr "" + +#: photologue/models.py:199 photologue/models.py:711 +msgid "sites" +msgstr "" + +#: photologue/models.py:207 photologue/models.py:309 +msgid "gallery" +msgstr "" + +#: photologue/models.py:208 +msgid "galleries" +msgstr "" + +#: photologue/models.py:277 +msgid "count" +msgstr "" + +#: photologue/models.py:299 +msgid "images file (.zip)" +msgstr "" + +#: photologue/models.py:301 +msgid "Select a .zip file of images to upload into a new Gallery." +msgstr "" + +#: photologue/models.py:306 +msgid "" +"All uploaded photos will be given a title made up of this title + a " +"sequential number." +msgstr "" + +#: photologue/models.py:312 +msgid "" +"Select a gallery to add these images to. Leave this empty to create a new " +"gallery from the supplied title." +msgstr "" + +#: photologue/models.py:314 photologue/models.py:697 +msgid "caption" +msgstr "" + +#: photologue/models.py:316 +msgid "Caption will be added to all photos." +msgstr "" + +#: photologue/models.py:319 +msgid "A description of this Gallery." +msgstr "" + +#: photologue/models.py:322 +msgid "" +"Uncheck this to make the uploaded gallery and included photographs private." +msgstr "" + +#: photologue/models.py:330 +msgid "gallery upload" +msgstr "" + +#: photologue/models.py:331 +msgid "gallery uploads" +msgstr "" + +#: photologue/models.py:343 +msgid "A gallery with that title already exists." +msgstr "" + +#: photologue/models.py:347 +msgid "Select an existing gallery or enter a new gallery name." +msgstr "" + +#: photologue/models.py:383 +#, python-brace-format +msgid "" +"Ignoring file \"{filename}\" as it is in a subfolder; all images should be " +"in the top folder of the zip." +msgstr "" + +#: photologue/models.py:403 +#, python-format, python-brace-format +msgid "" +"Did not create photo \"%(filename)s\" with slug \"{1}\" as a photo with that " +"slug already exists." +msgstr "" + +#: photologue/models.py:429 +#, python-brace-format +msgid "Could not process file \"{0}\" in the .zip archive." +msgstr "" + +#: photologue/models.py:446 photologue/models.py:946 +msgid "image" +msgstr "" + +#: photologue/models.py:449 +msgid "date taken" +msgstr "" + +#: photologue/models.py:456 +msgid "crop from" +msgstr "" + +#: photologue/models.py:465 +msgid "effect" +msgstr "" + +#: photologue/models.py:489 +msgid "An \"admin_thumbnail\" photo size has not been defined." +msgstr "" + +#: photologue/models.py:497 +msgid "Thumbnail" +msgstr "" + +#: photologue/models.py:700 +msgid "slug" +msgstr "" + +#: photologue/models.py:705 +msgid "date added" +msgstr "" + +#: photologue/models.py:709 +msgid "Public photographs will be displayed in the default views." +msgstr "" + +#: photologue/models.py:720 +msgid "photo" +msgstr "" + +#: photologue/models.py:884 +msgid "rotate or flip" +msgstr "" + +#: photologue/models.py:888 photologue/models.py:910 +msgid "color" +msgstr "" + +#: photologue/models.py:890 +msgid "" +"A factor of 0.0 gives a black and white image, a factor of 1.0 gives the " +"original image." +msgstr "" + +#: photologue/models.py:891 +msgid "brightness" +msgstr "" + +#: photologue/models.py:893 +msgid "" +"A factor of 0.0 gives a black image, a factor of 1.0 gives the original " +"image." +msgstr "" + +#: photologue/models.py:894 +msgid "contrast" +msgstr "" + +#: photologue/models.py:896 +msgid "" +"A factor of 0.0 gives a solid grey image, a factor of 1.0 gives the original " +"image." +msgstr "" + +#: photologue/models.py:897 +msgid "sharpness" +msgstr "" + +#: photologue/models.py:899 +msgid "" +"A factor of 0.0 gives a blurred image, a factor of 1.0 gives the original " +"image." +msgstr "" + +#: photologue/models.py:900 +msgid "filters" +msgstr "" + +#: photologue/models.py:904 +msgid "size" +msgstr "" + +#: photologue/models.py:906 +msgid "" +"The height of the reflection as a percentage of the orignal image. A factor " +"of 0.0 adds no reflection, a factor of 1.0 adds a reflection equal to the " +"height of the orignal image." +msgstr "" + +#: photologue/models.py:907 +msgid "strength" +msgstr "" + +#: photologue/models.py:909 +msgid "The initial opacity of the reflection gradient." +msgstr "" + +#: photologue/models.py:913 +msgid "" +"The background color of the reflection gradient. Set this to match the " +"background color of your page." +msgstr "" + +#: photologue/models.py:916 photologue/models.py:1013 +msgid "photo effect" +msgstr "" + +#: photologue/models.py:917 +msgid "photo effects" +msgstr "" + +#: photologue/models.py:948 +msgid "style" +msgstr "" + +#: photologue/models.py:952 +msgid "opacity" +msgstr "" + +#: photologue/models.py:954 +msgid "The opacity of the overlay." +msgstr "" + +#: photologue/models.py:957 +msgid "watermark" +msgstr "" + +#: photologue/models.py:958 +msgid "watermarks" +msgstr "" + +#: photologue/models.py:982 +msgid "" +"Photo size name should contain only letters, numbers and underscores. " +"Examples: \"thumbnail\", \"display\", \"small\", \"main_page_widget\"." +msgstr "" + +#: photologue/models.py:987 +msgid "width" +msgstr "" + +#: photologue/models.py:989 +msgid "" +"If width is set to \"0\" the image will be scaled to the supplied height." +msgstr "" + +#: photologue/models.py:990 +msgid "height" +msgstr "" + +#: photologue/models.py:992 +msgid "" +"If height is set to \"0\" the image will be scaled to the supplied width" +msgstr "" + +#: photologue/models.py:993 +msgid "quality" +msgstr "" + +#: photologue/models.py:996 +msgid "JPEG image quality." +msgstr "" + +#: photologue/models.py:997 +msgid "upscale images?" +msgstr "" + +#: photologue/models.py:999 +msgid "" +"If selected the image will be scaled up if necessary to fit the supplied " +"dimensions. Cropped sizes will be upscaled regardless of this setting." +msgstr "" + +#: photologue/models.py:1000 +msgid "crop to fit?" +msgstr "" + +#: photologue/models.py:1002 +msgid "" +"If selected the image will be scaled and cropped to fit the supplied " +"dimensions." +msgstr "" + +#: photologue/models.py:1003 +msgid "pre-cache?" +msgstr "" + +#: photologue/models.py:1005 +msgid "If selected this photo size will be pre-cached as photos are added." +msgstr "" + +#: photologue/models.py:1006 +msgid "increment view count?" +msgstr "" + +#: photologue/models.py:1008 +msgid "" +"If selected the image's \"view_count\" will be incremented when this photo " +"size is displayed." +msgstr "" + +#: photologue/models.py:1018 +msgid "watermark image" +msgstr "" + +#: photologue/models.py:1022 +msgid "photo size" +msgstr "" + +#: photologue/models.py:1023 +msgid "photo sizes" +msgstr "" + +#: photologue/models.py:1040 +msgid "Can only crop photos if both width and height dimensions are set." +msgstr "" + +#: photologue/templates/photologue/gallery_archive.html:4 +#: photologue/templates/photologue/gallery_archive.html:9 +msgid "Latest Photo Galleries" +msgstr "" + +#: photologue/templates/photologue/gallery_archive.html:14 +#: photologue/templates/photologue/photo_archive.html:16 +msgid "Filter by year" +msgstr "" + +#: photologue/templates/photologue/gallery_archive.html:30 +#: photologue/templates/photologue/gallery_list.html:30 +msgid "No galleries were found" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_day.html:4 +#: photologue/templates/photologue/gallery_archive_day.html:8 +#, python-format +msgid "Galleries for %(show_day)s" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_day.html:15 +#: photologue/templates/photologue/gallery_archive_month.html:30 +#: photologue/templates/photologue/gallery_archive_year.html:30 +msgid "No galleries were found." +msgstr "" + +#: photologue/templates/photologue/gallery_archive_day.html:19 +msgid "View all galleries for month" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_month.html:4 +#: photologue/templates/photologue/gallery_archive_month.html:9 +#, python-format +msgid "Galleries for %(show_month)s" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_month.html:14 +#: photologue/templates/photologue/photo_archive_month.html:14 +msgid "Filter by day" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_month.html:34 +msgid "View all galleries for year" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_year.html:4 +#: photologue/templates/photologue/gallery_archive_year.html:9 +#, python-format +msgid "Galleries for %(show_year)s" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_year.html:14 +#: photologue/templates/photologue/photo_archive_year.html:15 +msgid "Filter by month" +msgstr "" + +#: photologue/templates/photologue/gallery_archive_year.html:34 +#: photologue/templates/photologue/gallery_detail.html:20 +msgid "View all galleries" +msgstr "" + +#: photologue/templates/photologue/gallery_detail.html:11 +#: photologue/templates/photologue/gallery_list.html:19 +#: photologue/templates/photologue/photo_detail.html:13 +#: photologue/templates/photologue/includes/gallery_sample.html:8 +msgid "Published" +msgstr "" + +#: photologue/templates/photologue/gallery_list.html:4 +#: photologue/templates/photologue/gallery_list.html:10 +msgid "All Galleries" +msgstr "" + +#: photologue/templates/photologue/photo_archive.html:4 +#: photologue/templates/photologue/photo_archive.html:10 +msgid "Latest Photos" +msgstr "" + +#: photologue/templates/photologue/photo_archive.html:36 +#: photologue/templates/photologue/photo_archive_day.html:19 +#: photologue/templates/photologue/photo_archive_month.html:34 +#: photologue/templates/photologue/photo_archive_year.html:35 +#: photologue/templates/photologue/photo_list.html:23 +msgid "No photos were found" +msgstr "" + +#: photologue/templates/photologue/photo_archive_day.html:4 +#: photologue/templates/photologue/photo_archive_day.html:8 +#, python-format +msgid "Photos for %(show_day)s" +msgstr "" + +#: photologue/templates/photologue/photo_archive_day.html:23 +msgid "View all photos for month" +msgstr "" + +#: photologue/templates/photologue/photo_archive_month.html:4 +#: photologue/templates/photologue/photo_archive_month.html:9 +#, python-format +msgid "Photos for %(show_month)s" +msgstr "" + +#: photologue/templates/photologue/photo_archive_month.html:38 +msgid "View all photos for year" +msgstr "" + +#: photologue/templates/photologue/photo_archive_year.html:4 +#: photologue/templates/photologue/photo_archive_year.html:10 +#, python-format +msgid "Photos for %(show_year)s" +msgstr "" + +#: photologue/templates/photologue/photo_archive_year.html:39 +msgid "View all photos" +msgstr "" + +#: photologue/templates/photologue/photo_detail.html:21 +msgid "This photo is found in the following galleries" +msgstr "" + +#: photologue/templates/photologue/photo_list.html:4 +#: photologue/templates/photologue/photo_list.html:10 +msgid "All Photos" +msgstr "" + +#: photologue/templates/photologue/includes/paginator.html:5 +#: photologue/templates/photologue/includes/paginator.html:7 +#: templates/client/search/search.html:30 +msgid "Previous" +msgstr "" + +#: photologue/templates/photologue/includes/paginator.html:10 +#, python-format +msgid "" +"\n" +"\t\t\t page %(page_number)s of %(total_pages)s\n" +"\t\t\t" +msgstr "" + +#: photologue/templates/photologue/includes/paginator.html:15 +#: photologue/templates/photologue/includes/paginator.html:17 +#: templates/client/search/search.html:32 +msgid "Next" +msgstr "" + +#: place_conference/forms.py:47 place_conference/forms.py:48 +#: place_conference/models.py:51 +msgid "Общая вместимость" +msgstr "" + +#: place_conference/forms.py:49 place_conference/forms.py:50 +#: place_conference/models.py:52 +msgid "Количество залов" +msgstr "" + +#: place_conference/forms.py:51 +msgid "Видео" +msgstr "" + +#: place_conference/forms.py:52 +#, fuzzy +msgid "Введите ссылку на видео" +msgstr "Введите вашу фамилию" + +#: place_conference/forms.py:54 +msgid "Название зала" +msgstr "" + +#: place_conference/forms.py:55 +msgid "Номер зала" +msgstr "" + +#: place_conference/forms.py:56 +msgid "Вместимость зала" +msgstr "" + +#: place_conference/forms.py:58 place_conference/models.py:53 +#: templates/client/includes/place/place_services.html:52 +msgid "Выставочный зал" +msgstr "" + +#: place_conference/forms.py:59 place_conference/forms.py:60 +#: place_conference/models.py:54 +msgid "Площадь выст. зала" +msgstr "" + +#: place_conference/forms.py:63 +#: templates/client/includes/place/place_services.html:58 +msgid "Мультимедийное оборудование" +msgstr "" + +#: place_conference/forms.py:64 +#: templates/client/includes/place/place_services.html:61 +msgid "Конференц-связь" +msgstr "" + +#: place_conference/forms.py:65 +#: templates/client/includes/place/place_services.html:66 +msgid "Оборудование для синхронного перевода" +msgstr "" + +#: place_conference/forms.py:66 +#: templates/client/includes/place/place_services.html:69 +msgid "Банкетный зал" +msgstr "" + +#: place_conference/forms.py:67 +#: templates/client/includes/place/place_services.html:72 +msgid "Кейтеринг" +msgstr "" + +#: place_conference/forms.py:68 +#: templates/client/includes/place/place_services.html:75 +msgid "Гостиница" +msgstr "" + +#: place_conference/forms.py:89 place_exposition/forms.py:89 +msgid "Дополнительная инф по адресу" +msgstr "" + +#: place_conference/forms.py:99 +msgid "Шаблон вместимости" +msgstr "" + +#: place_conference/models.py:32 place_exposition/models.py:43 +msgid "Места:" +msgstr "" + +#: place_conference/models.py:56 +msgid "Виртуальный тур" +msgstr "" + +#: place_conference/models.py:98 place_exposition/forms.py:65 +#: templates/client/includes/place/place_services.html:23 +msgid "Конгресс-центр" +msgstr "" + +#: place_conference/models.py:98 +msgid "Конференц зал" +msgstr "" + +#: place_exposition/forms.py:51 +msgid "Общая выст. площадь" +msgstr "" + +#: place_exposition/forms.py:52 +msgid "Закрытая выставочная площадь" +msgstr "" + +#: place_exposition/forms.py:53 +msgid "Закр. выст. площадь" +msgstr "" + +#: place_exposition/forms.py:54 +msgid "Открытая выставочная площадь" +msgstr "" + +#: place_exposition/forms.py:55 +msgid "Откр. выст. площадь" +msgstr "" + +#: place_exposition/forms.py:56 place_exposition/forms.py:57 +msgid "Количество павильонов" +msgstr "" + +#: place_exposition/forms.py:58 +msgid "Количество конференц залов" +msgstr "" + +#: place_exposition/forms.py:59 +msgid "Конференц залы" +msgstr "" + +#: place_exposition/forms.py:62 +msgid "Банк/Банкоматы" +msgstr "" + +#: place_exposition/forms.py:63 +#: templates/client/includes/place/place_services.html:15 +msgid "Детская комната" +msgstr "" + +#: place_exposition/forms.py:64 +#: templates/client/includes/place/place_services.html:18 +msgid "Сервис для инвалидов" +msgstr "" + +#: place_exposition/forms.py:66 +#: templates/client/includes/place/place_services.html:26 +msgid "Бизнес-центр" +msgstr "" + +#: place_exposition/forms.py:67 +msgid "Онлайн регистрация" +msgstr "" + +#: place_exposition/forms.py:68 +msgid "Кафе" +msgstr "" + +#: place_exposition/forms.py:69 +#: templates/client/includes/place/place_services.html:37 +msgid "Информационные терминалы" +msgstr "" + +#: place_exposition/forms.py:70 +#: templates/client/includes/place/place_services.html:40 +msgid "Парковка" +msgstr "" + +#: place_exposition/forms.py:71 +#: templates/client/includes/place/place_services.html:43 +msgid "Пресс-центр" +msgstr "" + +#: place_exposition/forms.py:72 +#: templates/client/includes/place/place_services.html:46 +msgid "Мобильное приложение" +msgstr "" + +#: place_exposition/forms.py:260 +msgid "Номер" +msgstr "" + +#: place_exposition/forms.py:262 +msgid "Вместимость" +msgstr "" + +#: place_exposition/forms.py:280 +msgid "Вместимость должна состоять из цифр" +msgstr "" + +#: place_exposition/models.py:24 place_exposition/models.py:209 +msgid "Выставочный комплекс" +msgstr "" + +#: place_exposition/models.py:24 place_exposition/models.py:208 +msgid "Конгрессно-выставочный центр" +msgstr "" + +#: place_exposition/models.py:25 place_exposition/models.py:208 +msgid "Выставочный центр" +msgstr "" + +#: place_exposition/views.py:165 +msgid "Места по странам" +msgstr "" + +#: place_exposition/views.py:175 +msgid "Места по городам" +msgstr "" + +#: proj/settings.py:61 support/dev/settings.py:61 support/prod/settings.py:61 +msgid "Russian" +msgstr "" + +#: proj/settings.py:62 support/dev/settings.py:62 support/prod/settings.py:62 +msgid "English" +msgstr "" + +#: registration/admin.py:23 +msgid "Activate users" +msgstr "" + +#: registration/admin.py:43 +msgid "Re-send activation emails" +msgstr "" + +#: registration/forms.py:45 registration/forms.py:50 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "" + +#: registration/forms.py:51 templates/client/popups/register.html:20 +msgid "Фамилия" +msgstr "" + +#: registration/forms.py:53 +msgid "E-mail" +msgstr "" + +#: registration/forms.py:53 templates/client/popups/register.html:28 +msgid "Адрес электронной почты" +msgstr "" + +#: registration/forms.py:54 templates/client/popups/register.html:34 +msgid "Придумайте пароль" +msgstr "" + +#: registration/forms.py:55 +msgid "Password" +msgstr "" + +#: registration/forms.py:57 +msgid "Password (again)" +msgstr "" + +#: registration/forms.py:83 +msgid "I have read and agree to the Terms of Service" +msgstr "" + +#: registration/forms.py:84 +msgid "You must agree to the terms to register" +msgstr "" + +#: registration/forms.py:100 +msgid "" +"This email address is already in use. Please supply a different email " +"address." +msgstr "" + +#: registration/forms.py:127 +msgid "" +"Registration using free email addresses is prohibited. Please supply a " +"different email address." +msgstr "" + +#: registration/models.py:184 +msgid "user" +msgstr "" + +#: registration/models.py:185 +msgid "activation key" +msgstr "" + +#: registration/models.py:190 +msgid "registration profile" +msgstr "" + +#: registration/models.py:191 +msgid "registration profiles" +msgstr "" + +#: registration/backends/default/views.py:198 +msgid "Пользователя с таким email не существует" +msgstr "" + +#: registration/backends/default/views.py:201 +msgid "Пользователя с таким email уже активирован" +msgstr "" + +#: review/models.py:27 +msgid "Отзыв" +msgstr "" + +#: review/models.py:28 +msgid "Оценка" +msgstr "" + +#: seminar/forms.py:37 webinar/forms.py:35 +msgid "Дата и время начала" +msgstr "" + +#: seminar/forms.py:38 +msgid "Дата и время оконочания" +msgstr "" + +#: seminar/forms.py:87 webinar/forms.py:80 +msgid "Условия и скидки" +msgstr "" + +#: seminar/forms.py:172 +msgid "Семинар с таким названием уже существует" +msgstr "" + +#: seminar/models.py:86 webinar/models.py:81 +msgid "Условия и Скидки" +msgstr "" + +#: service/forms.py:30 specialist_catalog/models.py:32 +msgid "Цена" +msgstr "" + +#: service/forms.py:50 +msgid "Названия" +msgstr "" + +#: service/forms.py:53 specialist_catalog/models.py:46 +msgid "Преимущества" +msgstr "" + +#: service/forms.py:147 +msgid "При отсутствии стран этот флаг значит ВСЕ страны!" +msgstr "" + +#: service/models.py:134 +#: templates/client/includes/exposition/expo_paid.html:261 +#: templates/client/includes/exposition/exposition_object.html:259 +msgid "Рекламировать участника" +msgstr "" + +#: service/models.py:135 templates/client/simple_pages/advertising.html:112 +#: templates/client/simple_pages/advertising.html:122 +msgid "Баннерная реклама" +msgstr "" + +#: service/models.py:136 templates/client/simple_pages/advertising.html:135 +#: templates/client/simple_pages/advertising.html:144 +msgid "Приоритетное размещение событий в каталоге" +msgstr "" + +#: service/models.py:137 templates/client/simple_pages/advertising.html:156 +#: templates/client/simple_pages/advertising.html:164 +msgid "Персональная визитка Вашей компании" +msgstr "" + +#: service/models.py:155 +msgid "Исключить страны" +msgstr "" + +#: service/order_forms.py:13 +msgid "Интересующее событие" +msgstr "" + +#: service/order_forms.py:14 +msgid "Контактное лицо" +msgstr "" + +#: service/order_forms.py:17 +msgid "Контактный номер телефона" +msgstr "" + +#: service/order_forms.py:19 +msgid "Электронная почта" +msgstr "" + +#: service/order_forms.py:104 +msgid "официальный каталог" +msgstr "" + +#: service/order_forms.py:105 +msgid "фотоотчет" +msgstr "" + +#: service/order_forms.py:106 +msgid "видеоотчет" +msgstr "" + +#: service/order_forms.py:121 +msgid "оборудованная" +msgstr "" + +#: service/order_forms.py:122 +msgid "не оборудованная" +msgstr "" + +#: service/order_forms.py:127 +msgid "Краткое описание, вид деятельности компании" +msgstr "" + +#: service/order_forms.py:131 +msgid "Русский" +msgstr "" + +#: service/order_forms.py:135 service/order_forms.py:170 +msgid "Знание языков" +msgstr "" + +#: service/order_forms.py:146 service/order_forms.py:152 +msgid "Выберите" +msgstr "" + +#: service/order_forms.py:146 +msgid "Одноместное" +msgstr "" + +#: service/order_forms.py:147 +msgid "Двухместное" +msgstr "" + +#: service/order_forms.py:147 +msgid "Трехместное" +msgstr "" + +#: service/order_forms.py:149 +msgid "Прямой" +msgstr "" + +#: service/order_forms.py:149 +msgid "С пересадкой" +msgstr "" + +#: service/order_forms.py:150 +msgid "Бизнес-класс" +msgstr "" + +#: service/order_forms.py:150 +msgid "Эконом-класс" +msgstr "" + +#: service/order_forms.py:152 +msgid "Любое" +msgstr "" + +#: service/order_forms.py:153 +msgid "Рядом с выставкой" +msgstr "" + +#: service/order_forms.py:154 +msgid "В центре" +msgstr "" + +#: service/order_forms.py:156 +msgid "В сутки" +msgstr "" + +#: service/order_forms.py:156 +msgid "За весь период" +msgstr "" + +#: settings/forms.py:25 +#, fuzzy +msgid "Редактировать комментарий" +msgstr "Укажите вашу компанию" + +#: settings/forms.py:25 +msgid "Создать комментарий" +msgstr "" + +#: settings/forms.py:51 templates/client/article/catalog.html:11 +#: templates/client/article/catalog.html:39 +#: templates/client/article/event_news_list.html:10 +#: templates/client/article/news.html:8 +#: templates/client/article/news_list.html:8 +#: templates/client/article/news_list.html:13 +msgid "Новости" +msgstr "" + +#: settings/models.py:21 settings/models.py:67 +msgid "Комментарий" +msgstr "" + +#: settings/models.py:22 settings/models.py:68 +msgid "Имя Фамилия" +msgstr "" + +#: specialist_catalog/models.py:18 +msgid "Полное имя" +msgstr "" + +#: specialist_catalog/models.py:35 +msgid "Фото для города" +msgstr "" + +#: specialist_catalog/models.py:39 +msgid "Тип(Страна/Город)" +msgstr "" + +#: specialist_catalog/models.py:47 templates/client/country/country.html:90 +msgid "Крупные города" +msgstr "" + +#: specialist_catalog/models.py:104 +msgid "Текст отзыва" +msgstr "" + +#: specialist_catalog/models.py:105 +#, fuzzy +msgid "Логотип компании" +msgstr "Описание компании" + +#: specialist_catalog/models.py:106 +#, fuzzy +msgid "Страница" +msgstr "Страна" + +#: specialist_catalog/views.py:219 +#: templates/client/specialist_catalog/catalog_detailed.html:12 +msgid "Переводчики по странам" +msgstr "" + +#: specialist_catalog/views.py:221 +#: templates/client/specialist_catalog/catalog_detailed.html:14 +msgid "Переводчики по городам" +msgstr "" + +#: stats_collector/forms.py:10 +msgid "Все" +msgstr "" + +#: stats_collector/forms.py:20 stats_collector/forms.py:70 +msgid "Тег" +msgstr "" + +#: stats_collector/forms.py:36 +msgid "Раздел" +msgstr "" + +#: stats_collector/forms.py:41 +msgid "Тип объекта" +msgstr "" + +#: stats_collector/forms.py:42 templates/admin/expobanner/link_list.html:16 +msgid "Объект" +msgstr "" + +#: templates/admin/article/article_admin_list.html:7 +msgid "Список статей" +msgstr "" + +#: templates/admin/article/article_admin_list.html:12 +#: templates/admin/specialist/catalog_all.html:15 +msgid "Найти" +msgstr "" + +#: templates/admin/article/article_admin_list.html:35 +#: templates/admin/article/blog_form.html:38 +#: templates/admin/expobanner/comment_list.html:26 +#: templates/admin/expobanner/link_list.html:27 +#: templates/admin/expobanner/pcomment_list.html:26 +#: templates/admin/specialist/catalog_all.html:55 +#: templates/client/accounts/feed.html:27 +#: templates/client/accounts/feed.html:39 +msgid "Изменить" +msgstr "" + +#: templates/admin/article/article_admin_list.html:41 +msgid "Копировать" +msgstr "" + +#: templates/admin/article/article_admin_list.html:47 +#: templates/admin/expobanner/comment_list.html:27 +#: templates/admin/expobanner/pcomment_list.html:27 +#: templates/admin/specialist/catalog_all.html:61 +msgid "Удалить" +msgstr "" + +#: templates/admin/article/article_admin_list.html:55 +#: templates/admin/article/blog_form.html:38 +#: templates/admin/specialist/catalog_all.html:69 +#: templates/client/includes/accounts/current_user.html:189 +#: templates/client/includes/accounts/current_user.html:274 +#: templates/client/includes/accounts/current_user.html:337 +#: templates/client/includes/accounts/current_user.html:377 +#: templates/client/includes/company/company_edit.html:132 +#: templates/client/includes/company/company_edit.html:181 +#: templates/client/includes/company/company_edit.html:251 +#: templates/client/includes/company/company_edit.html:338 +#: templates/client/includes/company/company_edit.html:367 +#: templates/client/includes/company/company_edit.html:398 +#: templates/client/includes/company/company_edit.html:434 +#: templates/client/includes/company/company_edit.html:466 +#: templates/client/includes/company/company_edit.html:499 +msgid "Добавить" +msgstr "" + +#: templates/admin/article/article_admin_list.html:56 +#: templates/admin/article/blog_form.html:38 +msgid "статью" +msgstr "" + +#: templates/admin/article/article_admin_list.html:56 +msgid "новость" +msgstr "" + +#: templates/admin/article/blog_form.html:38 +#: templates/admin/specialist/catalog_all.html:52 +msgid "на сайте" +msgstr "" + +#: templates/admin/article/blog_form.html:42 +msgid "Основная информация" +msgstr "" + +#: templates/admin/article/blog_form.html:128 +msgid "Файлы" +msgstr "" + +#: templates/admin/article/blog_form.html:133 +msgid "Добавить файл" +msgstr "" + +#: templates/admin/article/blog_form.html:135 +msgid "Файлы можно добавлять только после введения основных данных" +msgstr "" + +#: templates/admin/article/blog_form.html:143 +msgid "id" +msgstr "" + +#: templates/admin/article/blog_form.html:144 +msgid "Файл" +msgstr "" + +#: templates/admin/expobanner/banner_stat.html:21 +#: templates/admin/expobanner/main_stat.html:24 +#: templates/admin/expobanner/paid_stat.html:25 +msgid "с: " +msgstr "" + +#: templates/admin/expobanner/banner_stat.html:23 +#: templates/admin/expobanner/main_stat.html:26 +#: templates/admin/expobanner/paid_stat.html:27 +msgid "по: " +msgstr "" + +#: templates/admin/expobanner/banner_stat.html:25 +#: templates/admin/expobanner/main_stat.html:28 +#: templates/admin/expobanner/paid_stat.html:29 +msgid "Фильтровать" +msgstr "" + +#: templates/admin/expobanner/comment_list.html:7 +#: templates/admin/expobanner/pcomment_list.html:7 +msgid "Список комментариев" +msgstr "" + +#: templates/admin/expobanner/comment_list.html:11 +#: templates/admin/expobanner/pcomment_list.html:11 +msgid "Добавить комментарий" +msgstr "" + +#: templates/admin/expobanner/link_list.html:17 +msgid "ссылка для отслеживания" +msgstr "" + +#: templates/admin/expobanner/link_list.html:28 +#: templates/client/expobanners/banner_stat.html:34 +#: templates/client/expobanners/paid_stat.html:34 +#: templates/client/exposition/statistic.html:13 +#: templates/client/includes/exposition/expo_paid.html:187 +#: templates/client/includes/exposition/expo_paid.html:296 +#: templates/client/includes/exposition/exposition_object.html:168 +#: templates/client/includes/exposition/exposition_object.html:293 +#: templates/client/includes/exposition/statistic.html:76 +msgid "Статистика" +msgstr "" + +#: templates/admin/expobanner/link_list.html:38 +msgid "Назад к управлению баннерами" +msgstr "" + +#: templates/admin/hvad/change_form.html:38 +#: templates/admin/hvad/change_form.html:40 +#: templates/admin/hvad/deletion_not_allowed.html:10 +#: templates/admin/hvad/includes/translation_tabs.html:6 +#: templates/admin/hvad/includes/translation_tabs.html:8 +msgid "Delete Translation" +msgstr "" + +#: templates/admin/hvad/deletion_not_allowed.html:15 +#, python-format +msgid "" +"Deletion of the %(language_name)s translation of %(object_name)s " +"'%(escaped_object)s' is not allowed, because it is the last available " +"translation of this instance." +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:10 +#: templates/admin/hvad/edit_inline/tabular.html:30 +msgid "View on site" +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:68 +#: templates/admin/hvad/edit_inline/tabular.html:115 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:71 +#: templates/admin/hvad/edit_inline/tabular.html:118 +msgid "Remove" +msgstr "" + +#: templates/admin/hvad/edit_inline/tabular.html:17 +msgid "Delete?" +msgstr "" + +#: templates/admin/includes/admin_nav.html:58 +#: templates/admin/stats/event_stat.html:26 +msgid "Статистика разделов" +msgstr "" + +#: templates/admin/includes/admin_nav.html:59 +msgid "Статистика событий" +msgstr "" + +#: templates/admin/specialist/catalog_all.html:14 +msgid "Только страны" +msgstr "" + +#: templates/admin/specialist/catalog_all.html:34 +msgid "Все каталоги специалистов" +msgstr "" + +#: templates/admin/specialist/catalog_all.html:42 +msgid "Страна/Город" +msgstr "" + +#: templates/admin/stats/event_stat.html:19 +#: templates/admin/stats/event_stat.html:29 +#: templates/admin/stats/event_stat.html:47 +#: templates/admin/stats/event_stat.html:55 +#: templates/admin/stats/section_stat.html:24 +#: templates/admin/stats/section_stat.html:38 +#: templates/admin/stats/section_stat.html:48 +msgid "Просмотры" +msgstr "" + +#: templates/admin/stats/event_stat.html:48 +#: templates/client/includes/footer.html:26 +#: templates/client/includes/menu.html:4 +msgid "События" +msgstr "" + +#: templates/admin/stats/event_stat.html:52 +#: templates/admin/stats/section_stat.html:45 +msgid "Сумарные данные" +msgstr "" + +#: templates/admin/stats/event_stat.html:142 +#: templates/admin/stats/section_stat.html:181 +#: templates/client/accounts/feed.html:51 +msgid "Применить" +msgstr "" + +#: templates/client/404.html:7 templates/client/404_test.html:7 +msgid "Запрашиваемая страница не найдена" +msgstr "" + +#: templates/client/404.html:11 +msgid "Возможно у нее изменился адрес или же она была удалена" +msgstr "" + +#: templates/client/404.html:11 +msgid "" +"Воспользуйтесь поиском по названию, расширенной формой поиска или каталогом " +"событий" +msgstr "" + +#: templates/client/404.html:15 templates/client/404_test.html:15 +msgid "Каталог выставок" +msgstr "" + +#: templates/client/404.html:24 templates/client/404_test.html:24 +msgid "Каталог конференций" +msgstr "" + +#: templates/client/404_test.html:11 +msgid "" +"Возможно у нее изменился адрес или же она была удалена.
Воспользуйтесь " +"поиском по названию, расширенной формой поиска или каталогом событий." +msgstr "" + +#: templates/client/blank.html:88 +#: templates/client/includes/index/main_events.html:37 +msgid "добавить в календарь" +msgstr "" + +#: templates/client/blank.html:89 +#: templates/client/includes/index/main_events.html:37 +msgid "Убрать из календаря" +msgstr "" + +#: templates/client/index.html:120 +msgid "Наши партнеры:" +msgstr "" + +#: templates/client/photoreport.html:6 +#: templates/client/accounts/calendar.html:8 +#: templates/client/accounts/feed.html:7 +#: templates/client/accounts/messages.html:8 +#: templates/client/accounts/messages_history.html:6 +#: templates/client/accounts/settings.html:8 +#: templates/client/accounts/user_events.html:8 +#: templates/client/accounts/translators/translator_city.html:11 +#: templates/client/accounts/translators/translator_country.html:7 +#: templates/client/accounts/translators/translator_profile.html:10 +#: templates/client/accounts/translators/translators_by.html:7 +#: templates/client/article/article.html:7 +#: templates/client/article/blog_list.html:8 +#: templates/client/article/catalog.html:9 +#: templates/client/article/event_news_list.html:9 +#: templates/client/article/news.html:7 +#: templates/client/article/news_list.html:7 templates/client/city/city.html:7 +#: templates/client/company/companies_list.html:6 +#: templates/client/company/company_detail.html:6 +#: templates/client/company/search.html:7 +#: templates/client/conference/catalog.html:7 +#: templates/client/conference/catalog_theme.html:7 +#: templates/client/conference/conference_by.html:13 +#: templates/client/conference/conference_detail.html:6 +#: templates/client/conference/conference_list.html:6 +#: templates/client/conference/members.html:6 +#: templates/client/conference/photo.html:6 +#: templates/client/conference/visitors.html:6 +#: templates/client/country/country.html:7 +#: templates/client/exposition/catalog.html:8 +#: templates/client/exposition/catalog_theme.html:15 +#: templates/client/exposition/exposition_by.html:13 +#: templates/client/exposition/exposition_detail.html:7 +#: templates/client/exposition/exposition_list.html:6 +#: templates/client/exposition/members.html:6 +#: templates/client/exposition/photo.html:6 +#: templates/client/exposition/price.html:6 +#: templates/client/exposition/programm.html:7 +#: templates/client/exposition/search.html:7 +#: templates/client/exposition/statistic.html:8 +#: templates/client/exposition/visitors.html:6 +#: templates/client/includes/bread_scrumbs.html:5 +#: templates/client/organiser/add_event.html:6 +#: templates/client/page/page_view.html:7 +#: templates/client/place/catalog.html:7 +#: templates/client/place/catalog_by.html:13 +#: templates/client/place/photo.html:6 +#: templates/client/place/place_detail.html:6 +#: templates/client/place/place_list.html:6 +#: templates/client/place/search.html:7 +#: templates/client/service/build_stand.html:8 +#: templates/client/service/build_stand.html:15 +#: templates/client/service/catalog.html:8 +#: templates/client/service/catalog.html:15 +#: templates/client/service/participation.html:9 +#: templates/client/service/participation.html:16 +#: templates/client/service/remotely.html:10 +#: templates/client/service/remotely.html:17 +#: templates/client/service/tickets.html:9 +#: templates/client/service/tickets.html:16 +#: templates/client/service/tour.html:9 templates/client/service/tour.html:16 +#: templates/client/service/translator.html:9 +#: templates/client/service/translator.html:16 +#: templates/client/simple_pages/about.html:13 +#: templates/client/simple_pages/advertising.html:9 +#: templates/client/specialist_catalog/catalog.html:8 +#: templates/client/specialist_catalog/catalog_detailed.html:9 +msgid "Главная страница" +msgstr "" + +#: templates/client/photoreport.html:97 +msgid "Выставочный стенд" +msgstr "" + +#: templates/client/photoreport.html:98 +msgid "" +"Создание единой платформы для общения, обучения, продвижения и заключения " +"бизнес соглашений между всеми участниками рынка интернет маркетинга." +msgstr "" + +#: templates/client/photoreport.html:101 +msgid "На фотографии отмечены:" +msgstr "" + +#: templates/client/photoreport.html:102 +msgid "Анна Петрова" +msgstr "" + +#: templates/client/photoreport.html:102 +msgid "Николай Довженко" +msgstr "" + +#: templates/client/photoreport.html:107 +msgid "Коментарии:" +msgstr "" + +#: templates/client/photoreport.html:112 +msgid "Анна Петрова:" +msgstr "" + +#: templates/client/photoreport.html:113 +msgid "Отлично ребята подготовились!" +msgstr "" + +#: templates/client/photoreport.html:117 +msgid "Алексей Звонцев:" +msgstr "" + +#: templates/client/photoreport.html:118 +msgid "Согласен!" +msgstr "" + +#: templates/client/photoreport.html:129 +msgid "Оставьте свой комментарий:" +msgstr "" + +#: templates/client/photoreport.html:133 +msgid "ок" +msgstr "" + +#: templates/client/photoreport.html:134 +#: templates/client/includes/photoreport/photoreport_object.html:109 +#: templates/client/photoreport/gallery.html:112 +msgid "отметить человека" +msgstr "" + +#: templates/client/accounts/calendar.html:9 +#: templates/client/accounts/messages.html:9 +#: templates/client/accounts/messages_history.html:7 +#: templates/client/accounts/settings.html:9 +msgid "Личный кабинет" +msgstr "" + +#: templates/client/accounts/calendar.html:10 +msgid "Календарь" +msgstr "" + +#: templates/client/accounts/calendar.html:16 +msgid "Личный календарь" +msgstr "" + +#: templates/client/accounts/calendar.html:39 +msgid "Все / выделенные:" +msgstr "" + +#: templates/client/accounts/calendar.html:41 +msgid "удалить из расписания" +msgstr "" + +#: templates/client/accounts/calendar.html:42 +msgid "выбраные в xls" +msgstr "" + +#: templates/client/accounts/calendar.html:43 +msgid "все предстоящие в xls" +msgstr "" + +#: templates/client/accounts/calendar.html:45 +msgid "ЭКСПОРТИРОВАТЬ В" +msgstr "" + +#: templates/client/accounts/calendar.html:47 +msgid "сохранить в pdf" +msgstr "" + +#: templates/client/accounts/calendar.html:48 +msgid "Распечатать" +msgstr "" + +#: templates/client/accounts/calendar.html:56 +msgid "Посмотреть прошедший календарь" +msgstr "" + +#: templates/client/accounts/calendar.html:62 +msgid "У вас нету событий в будущем!" +msgstr "" + +#: templates/client/accounts/calendar.html:86 +msgid "Не выбрано ни одного события!" +msgstr "" + +#: templates/client/accounts/feed.html:8 +#: templates/client/accounts/feed.html:13 +msgid "Моя лента событий" +msgstr "" + +#: templates/client/accounts/feed.html:24 +msgid "Фильтрация ленты" +msgstr "" + +#: templates/client/accounts/feed.html:27 +msgid "Тематические фильтры не выбраны" +msgstr "" + +#: templates/client/accounts/feed.html:39 +msgid "Географические фильтры не выбраны" +msgstr "" + +#: templates/client/accounts/feed.html:75 +msgid "" +" Вы можете настроить ленту событий, один раз выбрав интересные темы и " +"географию с помощью кнопки «Фильтрация ленты»." +msgstr "" + +#: templates/client/accounts/feed.html:85 +#: templates/client/exposition/search.html:28 +msgid "" +"Увы, событий, соответствующих выбранным фильтрам, нет в каталоге.
" +"Попробуйте укрупнить параметры поиска" +msgstr "" + +#: templates/client/accounts/feed.html:102 +#: templates/client/includes/catalog_search.html:107 +#: templates/client/includes/catalog_search_main.html:117 +msgid " и еще _ позиции" +msgstr "" + +#: templates/client/accounts/feed.html:103 +#: templates/client/includes/catalog_search.html:106 +#: templates/client/includes/catalog_search_main.html:116 +msgid " и еще _ позиция" +msgstr "" + +#: templates/client/accounts/messages.html:10 +#: templates/client/accounts/messages.html:16 +#: templates/client/accounts/messages_history.html:8 +#: templates/client/accounts/messages_history.html:14 +msgid "Сообщения" +msgstr "" + +#: templates/client/accounts/messages.html:42 +msgid "ответить" +msgstr "" + +#: templates/client/accounts/messages.html:44 +msgid "вся переписка" +msgstr "" + +#: templates/client/accounts/messages.html:55 +msgid "У вас нет новых сообщений" +msgstr "" + +#: templates/client/accounts/messages.html:64 +msgid "Ответить" +msgstr "" + +#: templates/client/accounts/messages.html:69 +#: templates/client/accounts/messages_history.html:43 +msgid "Сообщение" +msgstr "" + +#: templates/client/accounts/messages.html:77 +#: templates/client/accounts/messages_history.html:51 +#: templates/client/accounts/user.html:42 +msgid "отправить" +msgstr "" + +#: templates/client/accounts/messages_history.html:29 +msgid "Вы" +msgstr "" + +#: templates/client/accounts/messages_history.html:52 +msgid "Все сообщения" +msgstr "" + +#: templates/client/accounts/settings.html:10 +#: templates/client/accounts/settings.html:16 +msgid "Настройки" +msgstr "" + +#: templates/client/accounts/settings.html:24 +msgid "смена пароля" +msgstr "" + +#: templates/client/accounts/settings.html:46 +msgid "Пароль изменен!" +msgstr "" + +#: templates/client/accounts/settings.html:52 +#: templates/client/accounts/settings.html:187 +#: templates/client/newsletters/unsubscribe_form.html:87 +msgid "сохранить" +msgstr "" + +#: templates/client/accounts/settings.html:61 +msgid "социализация и sharing" +msgstr "" + +#: templates/client/accounts/settings.html:116 +#: templates/client/newsletters/unsubscribe_form.html:15 +msgid "настройка подписки" +msgstr "" + +#: templates/client/accounts/settings.html:121 +#: templates/client/newsletters/unsubscribe_form.html:20 +#: templates/client/popups/announces.html:7 +msgid "по e-mail" +msgstr "" + +#: templates/client/accounts/settings.html:175 +#: templates/client/newsletters/unsubscribe_form.html:75 +msgid "«Практикум экспонента»" +msgstr "" + +#: templates/client/accounts/settings.html:175 +#: templates/client/newsletters/unsubscribe_form.html:75 +msgid "" +"учимся эффективно участвовать в выставках и грамотно пиарить свою компанию " +"на событиях" +msgstr "" + +#: templates/client/accounts/settings.html:179 +#: templates/client/newsletters/unsubscribe_form.html:79 +msgid "«Практикум организатора событий»" +msgstr "" + +#: templates/client/accounts/settings.html:179 +#: templates/client/newsletters/unsubscribe_form.html:79 +msgid "Создаем, наполняем и продвигаем собственные ивэнты" +msgstr "" + +#: templates/client/accounts/user.html:30 +msgid "Отправить сообщение" +msgstr "" + +#: templates/client/accounts/user.html:35 +msgid "Текст сообщения" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:13 +#: templates/client/accounts/translators/translator_country.html:9 +#: templates/client/accounts/translators/translator_country.html:27 +#: templates/client/accounts/translators/translators_list.html:10 +#: templates/client/includes/services.html:6 +#: templates/client/includes/translators_aside.html:3 +msgid "Переводчики" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:34 +#: templates/client/accounts/translators/translator_country.html:31 +msgid "" +"Компания Serve Businesses Worldwide предлагает Вам возможность заказать " +"услуги русскоговорящих переводчиков со знанием английского языка " +"практически непосредственно в Великобритании." +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:44 +#: templates/client/accounts/translators/translator_country.html:79 +#: templates/client/specialist_catalog/catalog_detailed.html:74 +msgid "Коротко о наших преимуществах:" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:46 +#: templates/client/accounts/translators/translator_country.html:81 +msgid "Эффективная цена" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:47 +#: templates/client/accounts/translators/translator_country.html:82 +msgid "Опыт и профессионализм специалистов" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:48 +#: templates/client/accounts/translators/translator_country.html:83 +msgid "" +"Знание разных менталитетов и психологических аспектов проведения " +"переговоров с зарубежными бизнесменами" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:49 +#: templates/client/accounts/translators/translator_country.html:84 +msgid "Ориентированность в мировых выставочных комплексах" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:50 +#: templates/client/accounts/translators/translator_country.html:85 +msgid "" +"Гарантии, отчетность по договору, прозрачные безналичные расчеты в России" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:62 +#: templates/client/accounts/translators/translator_country.html:97 +msgid "от 80 € / день" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:64 +#: templates/client/accounts/translators/translator_country.html:99 +#: templates/client/specialist_catalog/catalog_detailed.html:232 +msgid "заказать услугу" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:76 +#: templates/client/accounts/translators/translator_country.html:111 +#: templates/client/specialist_catalog/catalog_detailed.html:256 +msgid "Наши специалисты" +msgstr "" + +#: templates/client/accounts/translators/translator_city.html:103 +#: templates/client/accounts/translators/translator_country.html:133 +msgid "Все переводчики" +msgstr "" + +#: templates/client/accounts/translators/translator_country.html:32 +msgid "" +"Ниже приведен список наиболее часто востребованных территориальных " +"направлений для оказания услуг перевода в Великобритании. Приведенный " +"перечень не является исчерпывающим, поэтому, если Вы не нашли нужный Вам " +"город, обратитесь к нашим консультантам." +msgstr "" + +#: templates/client/accounts/translators/translator_country.html:41 +#: templates/client/city/city.html:63 templates/client/country/country.html:78 +#: templates/client/includes/address_block.html:11 +#: templates/client/includes/company/company_edit.html:179 +#: templates/client/includes/company/company_object.html:48 +#: templates/client/includes/conference/conference_object.html:59 +#: templates/client/includes/conference/conference_paid.html:67 +#: templates/client/includes/exposition/expo_paid.html:66 +#: templates/client/includes/exposition/exposition_object.html:63 +#: templates/client/includes/exposition/price.html:63 +#: templates/client/includes/exposition/programm.html:65 +#: templates/client/includes/exposition/statistic.html:64 +#: templates/client/includes/place/place_object.html:33 +msgid "Скрыть карту" +msgstr "" + +#: templates/client/accounts/translators/translator_country.html:44 +#: templates/client/city/city.html:66 templates/client/country/country.html:81 +#: templates/client/includes/address_block.html:8 +#: templates/client/includes/company/company_edit.html:179 +#: templates/client/includes/company/company_object.html:48 +#: templates/client/includes/conference/conference_object.html:56 +#: templates/client/includes/conference/conference_paid.html:64 +#: templates/client/includes/exposition/expo_paid.html:62 +#: templates/client/includes/exposition/exposition_object.html:59 +#: templates/client/includes/exposition/price.html:59 +#: templates/client/includes/exposition/programm.html:61 +#: templates/client/includes/exposition/statistic.html:60 +#: templates/client/includes/place/place_object.html:30 +msgid "Раскрыть карту" +msgstr "" + +#: templates/client/accounts/translators/translator_profile.html:38 +msgid "Есть личный автомобиль" +msgstr "" + +#: templates/client/accounts/translators/translator_profile.html:46 +#: translator/forms.py:50 +msgid "Родной язык" +msgstr "" + +#: templates/client/accounts/translators/translator_profile.html:53 +#: translator/forms.py:47 +msgid "Образование" +msgstr "" + +#: templates/client/article/article.html:8 +#: templates/client/article/blog_list.html:9 +#: templates/client/article/blog_list.html:14 +#: templates/client/article/catalog.html:13 +#: templates/client/article/catalog.html:37 +#: templates/client/includes/news.html:26 +msgid "Статьи" +msgstr "" + +#: templates/client/article/article.html:24 +#: templates/client/article/news.html:25 +#: templates/client/includes/conference/conference_list.html:81 +#: templates/client/includes/conference/conference_object.html:91 +#: templates/client/includes/conference/conference_paid.html:99 +#: templates/client/includes/exposition/expo_list_paid.html:71 +#: templates/client/includes/exposition/expo_paid.html:90 +#: templates/client/includes/exposition/expo_top.html:76 +#: templates/client/includes/exposition/exposition_list.html:89 +#: templates/client/includes/exposition/exposition_object.html:95 +#: templates/client/wizard/second_step.html:33 +#: templates/client/wizard/third_step.html:32 +#: templates/client/wizard/third_step.html:44 +msgid "изменить" +msgstr "" + +#: templates/client/article/article.html:49 +msgid "Похожие статьи" +msgstr "" + +#: templates/client/article/article.html:49 +#: templates/client/includes/news.html:43 +#: templates/client/simple_pages/participation_landing.html:298 +msgid "Все статьи" +msgstr "" + +#: templates/client/article/article.html:57 +msgid "Евгения Булавина" +msgstr "" + +#: templates/client/article/blog_list.html:48 +#: templates/client/article/news_list.html:47 +msgid "Укажите тематику" +msgstr "" + +#: templates/client/article/blog_list.html:52 +#: templates/client/article/news_list.html:50 +#: templates/client/includes/company/company_edit.html:577 +msgid "Выберите ключевые теги" +msgstr "" + +#: templates/client/article/event_news_list.html:11 +#: templates/client/article/event_news_list.html:19 +msgid "Новости к событию" +msgstr "" + +#: templates/client/article/news.html:35 +msgid "Источник" +msgstr "" + +#: templates/client/article/news.html:47 +msgid "Похожие новости" +msgstr "" + +#: templates/client/article/news.html:47 +#: templates/client/includes/news.html:23 +#: templates/client/includes/article/articles_in_event.html:7 +#: templates/client/includes/index/news.html:21 +msgid "Все новости" +msgstr "" + +#: templates/client/buttons/booking_button.html:3 +#: templates/client/includes/event_list.html:89 +#: templates/client/includes/place/place_object.html:155 +msgid "Лучшие цены на отели на" +msgstr "" + +#: templates/client/city/city.html:40 templates/client/country/country.html:56 +msgid "человек" +msgstr "" + +#: templates/client/city/city.html:48 templates/client/country/country.html:59 +msgid "Телефонный код" +msgstr "" + +#: templates/client/city/city.html:75 +msgid "Должны посетить" +msgstr "" + +#: templates/client/city/city.html:83 +msgid "Шоппинг" +msgstr "" + +#: templates/client/city/city.html:103 +#: templates/client/country/country.html:116 +#: templates/client/includes/place/place_object.html:49 +msgid "Фотогалерея" +msgstr "" + +#: templates/client/city/city.html:124 +#: templates/client/country/country.html:162 +msgid "События в" +msgstr "" + +#: templates/client/city/city.html:124 +#: templates/client/country/country.html:162 +#: templates/client/includes/company/company_object.html:216 +msgid "Все события" +msgstr "" + +#: templates/client/city/city.html:134 +#: templates/client/country/country.html:172 +msgid "Места в" +msgstr "" + +#: templates/client/city/city.html:134 +#: templates/client/country/country.html:172 +msgid "Все места" +msgstr "" + +#: templates/client/city/city.html:144 +#: templates/client/country/country.html:182 +msgid "Организаторы в" +msgstr "" + +#: templates/client/city/city.html:144 +#: templates/client/country/country.html:182 +msgid "Все организаторы" +msgstr "" + +#: templates/client/country/country.html:41 +msgid "Официальный язык" +msgstr "" + +#: templates/client/country/country.html:48 +msgid "Часовая зона" +msgstr "" + +#: templates/client/country/country.html:49 +msgid "среднее время по Гринвичу" +msgstr "" + +#: templates/client/country/country.html:134 +msgid "Визовая информация" +msgstr "" + +#: templates/client/expobanners/banner_stat.html:63 +#: templates/client/expobanners/paid_stat.html:63 +msgid "Подтвердить" +msgstr "" + +#: templates/client/expobanners/banner_stat.html:74 +msgid "Показы" +msgstr "" + +#: templates/client/expobanners/banner_stat.html:75 +msgid "Клики" +msgstr "" + +#: templates/client/expobanners/banner_stat.html:76 +msgid "Уникальные показы" +msgstr "" + +#: templates/client/expobanners/banner_stat.html:77 +msgid "Уникальные клики" +msgstr "" + +#: templates/client/expobanners/paid_stat.html:74 +#: templates/client/includes/exposition/services.html:14 +msgid "Официальный сайт" +msgstr "" + +#: templates/client/expobanners/paid_stat.html:75 +msgid "Билеты" +msgstr "" + +#: templates/client/expobanners/paid_stat.html:76 +msgid "Участие" +msgstr "" + +#: templates/client/expobanners/paid_stat.html:77 +msgid "Переходы с каталога" +msgstr "" + +#: templates/client/exposition/price.html:11 +#: templates/client/includes/exposition/expo_paid.html:185 +#: templates/client/includes/exposition/exposition_object.html:166 +msgid "Условия участия" +msgstr "" + +#: templates/client/exposition/programm.html:12 +#: templates/client/includes/conference/conference_object.html:157 +#: templates/client/includes/conference/conference_paid.html:199 +#: templates/client/includes/exposition/expo_paid.html:182 +#: templates/client/includes/exposition/exposition_object.html:163 +#: templates/client/includes/exposition/programm.html:79 +msgid "Деловая программа" +msgstr "" + +#: templates/client/includes/announces.html:6 +msgid "получать анонсЫ" +msgstr "" + +#: templates/client/includes/booking_block.html:11 +msgid "Отели рядом с выставкой от" +msgstr "" + +#: templates/client/includes/booking_block.html:13 +msgid "Все отели поблизости" +msgstr "" + +#: templates/client/includes/booking_block.html:29 +#: templates/client/includes/booking_block.html:49 +msgid "ночь" +msgstr "" + +#: templates/client/includes/booking_block.html:31 +#: templates/client/includes/booking_block.html:51 +msgid "Забронировать" +msgstr "" + +#: templates/client/includes/calendar_button.html:4 +#: templates/client/includes/conference/conference_list.html:138 +#: templates/client/includes/conference/conference_object.html:395 +#: templates/client/includes/conference/conference_paid.html:434 +#: templates/client/includes/exposition/expo_list_paid.html:154 +#: templates/client/includes/exposition/expo_paid.html:417 +#: templates/client/includes/exposition/exposition_list.html:150 +#: templates/client/includes/exposition/exposition_object.html:420 +#: templates/client/includes/exposition/search_result.html:110 +msgid "Из расписания" +msgstr "" + +#: templates/client/includes/calendar_button.html:4 +#: templates/client/includes/conference/conference_list.html:137 +#: templates/client/includes/conference/conference_object.html:394 +#: templates/client/includes/conference/conference_paid.html:433 +#: templates/client/includes/exposition/expo_list_paid.html:153 +#: templates/client/includes/exposition/expo_paid.html:416 +#: templates/client/includes/exposition/exposition_list.html:149 +#: templates/client/includes/exposition/exposition_object.html:419 +#: templates/client/includes/exposition/search_result.html:109 +msgid "В расписание" +msgstr "" + +#: templates/client/includes/catalog_search.html:10 +msgid "Я ищу:" +msgstr "" + +#: templates/client/includes/catalog_search.html:20 +msgid "Где:" +msgstr "" + +#: templates/client/includes/catalog_search.html:29 +#: templates/client/includes/catalog_search_main.html:35 +msgid "найти" +msgstr "" + +#: templates/client/includes/catalog_search.html:34 +#: templates/client/includes/catalog_search_main.html:40 +msgid "Тематика: " +msgstr "" + +#: templates/client/includes/catalog_search.html:42 +#: templates/client/includes/catalog_search_main.html:49 +msgid "Тип: " +msgstr "" + +#: templates/client/includes/catalog_search.html:49 +#: templates/client/includes/catalog_search_main.html:56 +msgid "Место: " +msgstr "" + +#: templates/client/includes/catalog_search.html:58 +#: templates/client/includes/catalog_search_main.html:66 +msgid "Период: " +msgstr "" + +#: templates/client/includes/catalog_search.html:109 +#: templates/client/includes/catalog_search.html:110 +#: templates/client/includes/catalog_search_main.html:119 +#: templates/client/includes/catalog_search_main.html:120 +msgid " и еще _" +msgstr "" + +#: templates/client/includes/event_list.html:30 +msgid "Неактивная" +msgstr "" + +#: templates/client/includes/event_list.html:72 +#: templates/client/includes/exposition/services.html:4 +#: templates/client/includes/place/place_object.html:142 +msgid "услуги" +msgstr "" + +#: templates/client/includes/event_list.html:85 +#: templates/client/includes/company/search_result.html:44 +#: templates/client/includes/conference/conference_list.html:71 +#: templates/client/includes/conference/conference_object.html:82 +#: templates/client/includes/conference/conference_paid.html:90 +#: templates/client/includes/exposition/expo_list_paid.html:61 +#: templates/client/includes/exposition/expo_paid.html:81 +#: templates/client/includes/exposition/expo_top.html:66 +#: templates/client/includes/exposition/exposition_list.html:79 +#: templates/client/includes/exposition/exposition_object.html:86 +#: templates/client/includes/exposition/members.html:35 +#: templates/client/includes/exposition/search_result.html:58 +#: templates/client/includes/index/main_events.html:39 +#: templates/client/includes/place/place_object.html:152 +msgid "заметка" +msgstr "" + +#: templates/client/includes/event_list_description.html:6 +msgid "" +"\n" +"\t\t

Выставки - один из наиболее популярных инструментов " +"среди маркетологов. Это объясняется тем, что специализированные " +"выставки предоставляют отличную возможность быстро и в " +"одном месте найти новых партнеров и клиентов, узнать о новых трендах своей " +"отрасли, послушать насыщенную деловую программу. Поэтому мы создали " +"Expomap.Ru именно в помощь специалистам отделов маркетинга " +"и собственникам бизнеса, предоставляя легкий и удобный поиск " +"выставок, практические кейсы о том, как правильно выбрать " +"выставку, как организовать ее посещение за рубежом или " +"участие со стендом. Вы легко можете связаться с нашими " +"онлайн-консультантами через Skype или позвонив по тел. +7 499 999 12 " +"07, и получить бесплатную информацию об интересующей Вас " +"выставке или рекомендации по тем или иным вопросам.

\n" +"\n" +"\t\t

Сейчас в нашем каталоге представлены международные выставки 2013 " +"года, а также уже прошедшие мероприятия, начиная с 2008 года – со всех стран " +"и уголков мира. С помощью рубрикатора (левый блок \"Каталог " +"выставок\") или панели поиска (строка для ввода или расширенный " +"поиск) Вы всегда сможете найти календарь выставок по интересующим Вас тематикам: строительные выставки, медицинские выставки, выставки недвижимости " +"и другие. Кроме тематик, рубрикатор дает возможность сортировать события: по " +"алфавиту, по странам, по городам, по датам. Объединить все эти критерии Вы " +"можете, используя расширенный поиск. Итоговое расписание выставок по Вашим критериям будет построено " +"удобным образом, начиная с ближайших событий.

\n" +"\t " +msgstr "" + +#: templates/client/includes/event_steps.html:4 +msgid "Участвовать в выставке" +msgstr "" + +#: templates/client/includes/event_steps.html:4 +msgid "Посетить конференцию" +msgstr "" + +#: templates/client/includes/event_steps.html:7 +msgid "Создайте уникальную концепцию" +msgstr "" + +#: templates/client/includes/event_steps.html:7 +#: templates/client/includes/conference/conference_paid.html:138 +#: templates/client/includes/exposition/expo_paid.html:129 +msgid "Зарегистрируйтесь на событие" +msgstr "" + +#: templates/client/includes/event_steps.html:11 +#: templates/client/includes/exposition/price.html:229 +#: templates/client/includes/exposition/price.html:231 +#: templates/client/includes/exposition/services.html:16 +msgid "Заявка на участие" +msgstr "" + +#: templates/client/includes/event_steps.html:11 +#: templates/client/includes/header.html:93 +#: templates/client/popups/register.html:6 +msgid "Регистрация" +msgstr "" + +#: templates/client/includes/event_steps.html:16 +#: templates/client/includes/conference/conference_paid.html:152 +msgid "Забронируйте отель по лучшей цене" +msgstr "" + +#: templates/client/includes/event_steps.html:21 +msgid "Устраните языковые барьеры" +msgstr "" + +#: templates/client/includes/event_steps.html:22 +msgid "ПЕРЕВОДЧИК" +msgstr "" + +#: templates/client/includes/feedback.html:5 +msgid "обратный звонок" +msgstr "" + +#: templates/client/includes/footer.html:32 +#: templates/client/includes/menu.html:10 +msgid "места" +msgstr "" + +#: templates/client/includes/footer.html:33 +#: templates/client/includes/menu.html:11 +msgid "участники" +msgstr "" + +#: templates/client/includes/footer.html:37 +#: templates/client/includes/menu.html:15 +msgid "о нас" +msgstr "" + +#: templates/client/includes/footer.html:38 +#: templates/client/includes/menu.html:16 +msgid "партнеры" +msgstr "" + +#: templates/client/includes/footer.html:39 +#: templates/client/includes/menu.html:17 +msgid "реклама" +msgstr "" + +#: templates/client/includes/footer.html:40 +#: templates/client/includes/menu.html:24 +msgid "контакты" +msgstr "" + +#: templates/client/includes/footer.html:41 +#: templates/client/popups/announces.html:49 +msgid "подписаться" +msgstr "" + +#: templates/client/includes/header.html:78 +msgid "личный кабинет" +msgstr "" + +#: templates/client/includes/header.html:80 +msgid "календарь" +msgstr "" + +#: templates/client/includes/header.html:81 +msgid "документы" +msgstr "" + +#: templates/client/includes/header.html:85 +msgid "настройки" +msgstr "" + +#: templates/client/includes/header.html:88 +msgid "Выход" +msgstr "" + +#: templates/client/includes/header.html:94 +msgid "вход" +msgstr "" + +#: templates/client/includes/header.html:105 +msgid "Выставки в Москве" +msgstr "" + +#: templates/client/includes/header.html:106 +msgid "Выставки в Петербурге" +msgstr "" + +#: templates/client/includes/header.html:107 +msgid "Выставки в Германии" +msgstr "" + +#: templates/client/includes/header.html:111 +msgid "Выставки по городам" +msgstr "" + +#: templates/client/includes/header.html:112 +msgid "Выставки по странам" +msgstr "" + +#: templates/client/includes/header.html:113 +msgid "Выставки по тематикам" +msgstr "" + +#: templates/client/includes/main_page_video_block.html:4 +msgid " Видеорепортажи" +msgstr "" + +#: templates/client/includes/meta.html:33 +msgid "Expomap — выставки, конференции, семинары" +msgstr "" + +#: templates/client/includes/page_filter.html:4 +#: templates/client/includes/article/catalog_filter_period.html:11 +#: templates/client/includes/article.back/catalog_filter_period.html:11 +#: templates/client/includes/exposition/catalog_filter_period.html:11 +#: templates/client/popups/period.html:5 +msgid "Период" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "сентябрь 2013" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "октябрь 2013" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "ноябрь 2013" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "декабрь 2013" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "январь 2014" +msgstr "" + +#: templates/client/includes/page_filter.html:5 +msgid "февраль 2014" +msgstr "" + +#: templates/client/includes/page_filter.html:9 +#: templates/client/includes/exposition/catalog_filter_period.html:20 +msgid "Указать диапазон дат" +msgstr "" + +#: templates/client/includes/search_paginator.html:6 +msgid "Показано" +msgstr "" + +#: templates/client/includes/search_paginator.html:6 +msgid "всего" +msgstr "" + +#: templates/client/includes/search_paginator.html:9 +#: templates/client/includes/search_paginator.html:11 +msgid "Предыдущая" +msgstr "" + +#: templates/client/includes/search_paginator.html:38 +#: templates/client/includes/search_paginator.html:40 +msgid "Следующая" +msgstr "" + +#: templates/client/includes/services.html:3 +msgid "Наши услуги" +msgstr "" + +#: templates/client/includes/services.html:9 +#: templates/client/service/build_stand.html:185 +#: templates/client/service/build_stand.html:190 +#: templates/client/service/catalog.html:185 +#: templates/client/service/catalog.html:190 +#: templates/client/service/participation.html:284 +#: templates/client/service/participation.html:289 +#: templates/client/service/remotely.html:15 +#: templates/client/service/remotely.html:18 +#: templates/client/service/remotely.html:267 +#: templates/client/service/tickets.html:281 +#: templates/client/service/tickets.html:286 +#: templates/client/service/tour.html:364 +#: templates/client/service/tour.html:369 +#: templates/client/service/translator.html:366 +#: templates/client/service/translator.html:371 +msgid "Заочное посещение" +msgstr "" + +#: templates/client/includes/services.html:10 +msgid "Участие в выставках" +msgstr "" + +#: templates/client/includes/side_confs.html:9 +#: templates/client/includes/side_places.html:8 +msgid "Конференции в Москве" +msgstr "" + +#: templates/client/includes/side_confs.html:10 +#: templates/client/includes/side_places.html:9 +msgid "Конференции в Петербурге" +msgstr "" + +#: templates/client/includes/side_confs.html:11 +#: templates/client/includes/side_places.html:10 +msgid "Конференции в России" +msgstr "" + +#: templates/client/includes/translators_aside.html:8 +msgid "Переводчики в Москве" +msgstr "" + +#: templates/client/includes/translators_aside.html:9 +msgid "Переводчики в Германии" +msgstr "" + +#: templates/client/includes/translators_aside.html:10 +msgid "Переводчики в Италии" +msgstr "" + +#: templates/client/includes/translators_aside.html:11 +msgid "Переводчики в Китае" +msgstr "" + +#: templates/client/includes/visit_button.html:6 +#: templates/client/includes/visit_button.html:9 +#: templates/client/includes/visit_button.html:13 +msgid "Я планирую посетить" +msgstr "" + +#: templates/client/includes/visit_button.html:7 +#: templates/client/includes/visit_button.html:10 +#: templates/client/includes/visit_button.html:14 +msgid "Не планирую посещать" +msgstr "" + +#: templates/client/includes/accounts/blocked_user.html:13 +#: templates/client/includes/company/company_blocked.html:13 +msgid "Страница заблокирована за нарушение правил" +msgstr "" + +#: templates/client/includes/accounts/blocked_user.html:14 +#: templates/client/includes/company/company_blocked.html:14 +msgid "" +"Если считаете, что Ваша страница была заблокирована по ошибке, напишите на " +"info@expomap.ru" +msgstr "" + +#: templates/client/includes/accounts/calendar_table.html:5 +msgid "визуализация" +msgstr "" + +#: templates/client/includes/accounts/calendar_table.html:27 +msgid "Сегодня" +msgstr "" + +#: templates/client/includes/accounts/calendar_table.html:51 +msgid "Нет отмеченых событий" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:13 +msgid "Добавить фото" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:28 +#: templates/client/includes/accounts/current_user.html:72 +#: templates/client/includes/accounts/current_user.html:110 +#: templates/client/includes/accounts/current_user.html:153 +#: templates/client/includes/accounts/current_user.html:282 +#: templates/client/includes/accounts/current_user.html:347 +#: templates/client/includes/accounts/current_user.html:383 +#: templates/client/includes/company/company_edit.html:27 +#: templates/client/includes/company/company_edit.html:65 +#: templates/client/includes/company/company_edit.html:104 +#: templates/client/includes/company/company_edit.html:138 +#: templates/client/includes/company/company_edit.html:187 +#: templates/client/includes/company/company_edit.html:218 +#: templates/client/includes/company/company_edit.html:344 +#: templates/client/includes/company/company_edit.html:375 +#: templates/client/includes/company/company_edit.html:406 +msgid "редактировать" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:36 +#: templates/client/includes/company/company_edit.html:35 +#: templates/client/organiser/add_event.html:227 +msgid "выберите файл" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:37 +#: templates/client/includes/company/company_edit.html:36 +msgid "Файл не выбран" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:44 +#: templates/client/includes/accounts/current_user.html:90 +#: templates/client/includes/accounts/current_user.html:129 +#: templates/client/includes/accounts/current_user.html:173 +#: templates/client/includes/accounts/current_user.html:261 +#: templates/client/includes/accounts/current_user.html:299 +#: templates/client/includes/accounts/current_user.html:359 +#: templates/client/includes/accounts/current_user.html:395 +#: templates/client/includes/company/company_edit.html:43 +#: templates/client/includes/company/company_edit.html:83 +#: templates/client/includes/company/company_edit.html:120 +#: templates/client/includes/company/company_edit.html:152 +#: templates/client/includes/company/company_edit.html:199 +#: templates/client/includes/company/company_edit.html:326 +#: templates/client/includes/company/company_edit.html:357 +#: templates/client/includes/company/company_edit.html:388 +#: templates/client/includes/company/company_edit.html:419 +#: templates/client/includes/company/company_edit.html:449 +#: templates/client/includes/company/company_edit.html:482 +#: templates/client/includes/company/company_edit.html:516 +msgid "Сохранить" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:47 +#: templates/client/includes/accounts/current_user.html:93 +#: templates/client/includes/accounts/current_user.html:132 +#: templates/client/includes/accounts/current_user.html:176 +#: templates/client/includes/accounts/current_user.html:264 +#: templates/client/includes/accounts/current_user.html:302 +#: templates/client/includes/accounts/current_user.html:363 +#: templates/client/includes/accounts/current_user.html:398 +#: templates/client/includes/company/company_edit.html:46 +#: templates/client/includes/company/company_edit.html:85 +#: templates/client/includes/company/company_edit.html:124 +#: templates/client/includes/company/company_edit.html:156 +#: templates/client/includes/company/company_edit.html:203 +#: templates/client/includes/company/company_edit.html:329 +#: templates/client/includes/company/company_edit.html:360 +#: templates/client/includes/company/company_edit.html:391 +#: templates/client/includes/company/company_edit.html:422 +msgid "закрыть" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:54 +msgid "

Заполните свой
профиль, чтобы
повысить рейтинг

" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:55 +msgid "

Чем выше
рейтинг —
тем больше
преимуществ!

" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:64 +#: templates/client/includes/accounts/current_user.html:102 +#: templates/client/includes/accounts/current_user.html:142 +#: templates/client/includes/company/company_edit.html:57 +#: templates/client/includes/company/company_edit.html:98 +msgid "Указать" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:65 +msgid "Страну и город" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:103 +msgid "имя и фамилию" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:143 +msgid "свою должность и место работы" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:149 +#: templates/client/includes/accounts/current_user.html:481 +msgid "в" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:185 +#: templates/client/includes/company/company_edit.html:247 +#: templates/client/includes/company/company_object.html:76 +msgid "Профили в соц.сетях:" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:228 +#: templates/client/includes/company/company_edit.html:293 +msgid "+5 за каждый" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:275 +#: templates/client/includes/company/company_edit.html:339 +msgid "номер телефона" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:293 +msgid "Показывать всем" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:338 +#: templates/client/includes/company/company_edit.html:399 +msgid "сайт" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:374 +msgid "О себе:" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:378 +msgid "информацию о себе" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:407 +msgid "Мои компании:" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:414 +msgid "Пока не добавлено ни одной компании" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:434 +msgid "Добавить компанию" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:468 +msgid "Выберите тематику компании" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:471 +msgid "Поиск города" +msgstr "" + +#: templates/client/includes/accounts/current_user.html:475 +msgid "Поиск компании" +msgstr "" + +#: templates/client/includes/accounts/simple_user.html:71 +#: templates/client/includes/accounts/simple_user.html:73 +#: templates/client/includes/company/search_result.html:49 +#: templates/client/includes/exposition/members.html:39 +#: templates/client/includes/exposition/visitors.html:42 +msgid "отправить сообщение" +msgstr "" + +#: templates/client/includes/accounts/simple_user.html:112 +#: templates/client/includes/company/company_object.html:155 +msgid "Участие в событиях" +msgstr "" + +#: templates/client/includes/accounts/translators.html:35 +#: templates/client/includes/company/company_list.html:40 +#: templates/client/includes/company/search_result.html:40 +#: templates/client/includes/exposition/members.html:33 +#: templates/client/includes/exposition/visitors.html:36 +msgid "информация" +msgstr "" + +#: templates/client/includes/article/articles_in_event.html:7 +msgid "Последние новости к этому событию" +msgstr "" + +#: templates/client/includes/company/company_edit.html:12 +msgid "Добавить лого" +msgstr "" + +#: templates/client/includes/company/company_edit.html:58 +msgid "город" +msgstr "" + +#: templates/client/includes/company/company_edit.html:99 +msgid "название компании" +msgstr "" + +#: templates/client/includes/company/company_edit.html:233 +msgid "за каждый" +msgstr "" + +#: templates/client/includes/company/company_edit.html:431 +#: templates/client/includes/company/company_object.html:124 +#: templates/client/includes/conference/conference_object.html:154 +#: templates/client/includes/conference/conference_paid.html:196 +#: templates/client/includes/exposition/expo_paid.html:179 +#: templates/client/includes/exposition/exposition_object.html:160 +#: templates/client/organiser/add_event.html:125 +#: templates/client/wizard/first_step.html:102 +msgid "Дополнительная информация" +msgstr "" + +#: templates/client/includes/company/company_edit.html:452 +#: templates/client/includes/company/company_edit.html:485 +#: templates/client/includes/company/company_edit.html:520 +msgid "Закрыть" +msgstr "" + +#: templates/client/includes/company/company_edit.html:461 +#: templates/client/includes/company/company_edit.html:494 +#: templates/client/includes/company/company_edit.html:529 +msgid "Не заполнено" +msgstr "" + +#: templates/client/includes/company/company_edit.html:535 +#, fuzzy +msgid "Предварительный просмотр" +msgstr "Не правильный пароль" + +#: templates/client/includes/company/company_edit.html:570 +msgid "Выберите Страну" +msgstr "" + +#: templates/client/includes/company/company_edit.html:573 +msgid "Выберите город" +msgstr "" + +#: templates/client/includes/company/company_list.html:42 +#: templates/client/includes/company/search_result.html:42 +#: templates/client/includes/exposition/members.html:34 +#: templates/client/includes/exposition/visitors.html:37 +#: templates/client/includes/place/place_list.html:40 +#: templates/client/includes/place/search_result.html:43 +msgid "события" +msgstr "" + +#: templates/client/includes/company/company_object.html:128 +#: templates/client/organiser/add_event.html:291 +#: templates/client/wizard/second_step.html:62 +msgid "Год основания:" +msgstr "" + +#: templates/client/includes/company/company_object.html:133 +msgid "Количество сотрудников:" +msgstr "" + +#: templates/client/includes/company/company_object.html:137 +msgid "О компании:" +msgstr "" + +#: templates/client/includes/company/company_object.html:159 +msgid "выставках" +msgstr "" + +#: templates/client/includes/company/company_object.html:162 +msgid "конференциях" +msgstr "" + +#: templates/client/includes/company/company_object.html:165 +msgid "семинарах" +msgstr "" + +#: templates/client/includes/company/company_object.html:189 +msgid "Участник" +msgstr "" + +#: templates/client/includes/company/company_object.html:225 +msgid "Сотрудники" +msgstr "" + +#: templates/client/includes/company/company_object.html:259 +msgid "Все сотрудники" +msgstr "" + +#: templates/client/includes/conference/conference_list.html:118 +msgid "" +"Конференции по указанным параметрам не найдены. Попробуйте задать менее " +"точный запрос по теме или расширить период времени" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:94 +#: templates/client/includes/conference/conference_paid.html:102 +#: templates/client/includes/exposition/expo_paid.html:94 +#: templates/client/includes/exposition/exposition_object.html:98 +#: templates/client/includes/place/place_list.html:43 +#: templates/client/includes/place/search_result.html:46 +msgid "фото" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:97 +#: templates/client/includes/conference/conference_paid.html:105 +#: templates/client/includes/exposition/expo_paid.html:97 +#: templates/client/includes/exposition/exposition_object.html:102 +msgid "Найти отель" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:127 +#: templates/client/includes/conference/conference_paid.html:167 +msgid "Фотографии с прошлой конференции" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:145 +#: templates/client/includes/conference/conference_paid.html:186 +#: templates/client/includes/exposition/expo_paid.html:172 +#: templates/client/includes/exposition/exposition_object.html:149 +msgid "О выставке" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:145 +#: templates/client/includes/conference/conference_paid.html:186 +msgid "О конференции" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:223 +#: templates/client/includes/conference/conference_paid.html:256 +msgid "Все спикеры" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:244 +#: templates/client/includes/conference/conference_paid.html:277 +msgid "Разместите информацию о ключевых спикерах" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:245 +#: templates/client/includes/conference/conference_paid.html:278 +#: templates/client/popups/advertise_member.html:8 +msgid "Рекламировать спикера" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:268 +#: templates/client/includes/conference/conference_paid.html:301 +#: templates/client/includes/exposition/expo_paid.html:283 +#: templates/client/includes/exposition/exposition_object.html:281 +msgid "Все посетители" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:270 +#: templates/client/includes/conference/conference_paid.html:303 +#: templates/client/includes/exposition/expo_paid.html:285 +#: templates/client/includes/exposition/exposition_object.html:283 +msgid "Пока никто не отметился на событии." +msgstr "" + +#: templates/client/includes/conference/conference_object.html:281 +#: templates/client/includes/conference/conference_paid.html:314 +#: templates/client/includes/exposition/expo_paid.html:311 +#: templates/client/includes/exposition/exposition_object.html:308 +#: templates/client/includes/exposition/statistic.html:103 +msgid "участников" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:284 +#: templates/client/includes/conference/conference_paid.html:317 +#: templates/client/includes/exposition/expo_paid.html:314 +#: templates/client/includes/exposition/exposition_object.html:311 +#: templates/client/includes/exposition/statistic.html:92 +msgid "посетителей" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:287 +#: templates/client/includes/conference/conference_paid.html:320 +#: templates/client/includes/exposition/expo_paid.html:317 +#: templates/client/includes/exposition/exposition_object.html:314 +#: templates/client/includes/place/place_info.html:84 +msgid "Основано в" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:287 +#: templates/client/includes/conference/conference_paid.html:320 +#: templates/client/includes/exposition/expo_paid.html:317 +#: templates/client/includes/exposition/exposition_object.html:314 +#: templates/client/includes/place/place_info.html:84 +msgid "году" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:297 +#: templates/client/includes/conference/conference_paid.html:332 +msgid "Ближайшие конференции по тематике" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:357 +#: templates/client/includes/conference/conference_paid.html:392 +#: templates/client/includes/exposition/expo_paid.html:376 +#: templates/client/includes/exposition/exposition_object.html:382 +msgid "Смотрите также:" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:358 +#: templates/client/includes/conference/conference_object.html:359 +#: templates/client/includes/conference/conference_object.html:360 +#: templates/client/includes/conference/conference_object.html:361 +#: templates/client/includes/conference/conference_paid.html:393 +#: templates/client/includes/conference/conference_paid.html:394 +#: templates/client/includes/conference/conference_paid.html:395 +#: templates/client/includes/conference/conference_paid.html:396 +#: templates/client/includes/exposition/expo_paid.html:377 +#: templates/client/includes/exposition/expo_paid.html:378 +#: templates/client/includes/exposition/expo_paid.html:379 +#: templates/client/includes/exposition/expo_paid.html:380 +#: templates/client/includes/exposition/exposition_object.html:383 +#: templates/client/includes/exposition/exposition_object.html:384 +#: templates/client/includes/exposition/exposition_object.html:385 +#: templates/client/includes/exposition/exposition_object.html:386 +msgid "in" +msgstr "" + +#: templates/client/includes/conference/conference_object.html:360 +#: templates/client/includes/conference/conference_object.html:361 +#: templates/client/includes/conference/conference_paid.html:395 +#: templates/client/includes/conference/conference_paid.html:396 +msgid "Конференции по тематике " +msgstr "" + +#: templates/client/includes/conference/conference_paid.html:131 +msgid "Официальный сайт конференции" +msgstr "" + +#: templates/client/includes/conference/conference_paid.html:135 +msgid "Посетить/участвовать в конференции" +msgstr "" + +#: templates/client/includes/conference/conference_paid.html:142 +msgid "УЧАСТВОВАТЬ" +msgstr "" + +#: templates/client/includes/conference/conference_paid.html:158 +#: templates/client/includes/exposition/expo_paid.html:143 +msgid "Задайте свой вопрос напрямую организатору" +msgstr "" + +#: templates/client/includes/conference/conference_paid.html:159 +#: templates/client/includes/exposition/expo_paid.html:144 +msgid "Запрос организатору" +msgstr "" + +#: templates/client/includes/conference/default_description.html:3 +#, python-format +msgid "" +"\n" +"

Конференция %(name)s проходит " +msgstr "" + +#: templates/client/includes/conference/default_description.html:5 +#, python-format +msgid "" +"\n" +" в городе %(city)s, %(country)s.\n" +"Посмотреть, как проехать в место проведения конференции, можно на сайте " +"конгрессной площадки.\n" +"Деловая программа %(name)s разбита на секции по дням и размещается на сайте " +"мероприятия с подробным списком\n" +"докладчиков конференции. Спикеров конференции %(name)s обычно окончательно " +"утверждают за 1-2 месяца до начала конференции.

\n" +"

Ваши деловые контакты на %(name)s

\n" +"

Добавьте конференцию %(name)s в расписание, " +"чтобы не потерять важное событие,\n" +" где встречаются профессионалы нужной Вам отрасли. Создавайте свое " +"расписание мероприятий.

\n" +"

Планируете самостоятельную поездку на %(name)s ?

\n" +"

Если Вам требуется размещение, мы " +"рекомендуем посмотреть отели и цены в период проведения конференции здесь.\n" +"Не забудьте проверить место и даты конференции на официальном сайте и в " +"календаре организатора. Событие могут перенести,\n" +"отменить, объединить с проектом схожей тематики. Expomap не несет " +"ответственности за неточности\n" +"предоставляемой информации.

\n" +"Есть вопрос по участию в %(name)s ? Ответим по тел. +7 (499) 999-12-07\n" +" " +msgstr "" + +#: templates/client/includes/exposition/default_description.html:3 +#, python-format +msgid "" +"\n" +"

Выставка %(name)s проводится" +msgstr "" + +#: templates/client/includes/exposition/default_description.html:6 +#, python-format +msgid " в городе %(city)s, %(country)s.

" +msgstr "" + +#: templates/client/includes/exposition/default_description.html:7 +#, python-format +msgid "" +"\n" +"

Экспонируемые продукты и разделы выставки Вы можете посмотреть " +"ниже, в блоке\n" +" «Дополнительная информация».\n" +" Полный список участников %(name)s размещается на официальном сайте " +"выставки и постоянно обновляется.\n" +" Там же Вы сможете найти экспонентов предыдущего года. Деловая " +"программа %(name)s обычно публикуется ближе к\n" +" началу события.

\n" +"\n" +"

Ваш личный календарь

\n" +"

Добавьте выставку %(name)s в календарь, чтобы не\n" +" потерять важное событие. Создавайте свое расписание мероприятий." +"

\n" +"\n" +"

Планируете самостоятельную поездку на %(name)s?

\n" +"

Мы рекомендуем посмотреть отели и " +"цены в период проведения выставки\n" +" здесь.\n" +" " +msgstr "" + +#: templates/client/includes/exposition/default_description.html:22 +#, python-format +msgid "" +"Как добраться до выставочного центра %(name)s можно\n" +" посмотреть\n" +" здесь." +msgstr "" + +#: templates/client/includes/exposition/default_description.html:26 +#, python-format +msgid "" +"\n" +" Не забудьте проверить место и даты выставки на официальном сайте и в " +"календаре выставочного комплекса.\n" +" Событие могут перенести, отменить, объединить с проектом схожей " +"тематики.\n" +" Expomap не несет ответственности за неточности предоставляемой " +"информации.

\n" +" Есть вопрос о посещении или участии в %(name)s? Ответим по тел. " +"+7 (499) 999-12-07\n" +" " +msgstr "" + +#: templates/client/includes/exposition/expo_list_paid.html:131 +#: templates/client/includes/exposition/exposition_list.html:127 +msgid "" +"Выставки по указанным параметрам не найдены. Попробуйте задать менее точный " +"запрос по теме или расширить период времени" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:122 +msgid "Официальный сайт выставки" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:126 +msgid "Посетить/участвовать в выставке" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:133 +#: templates/client/includes/exposition/services.html:15 +#: templates/client/service/participation.html:288 +#: templates/client/service/remotely.html:271 +#: templates/client/service/tickets.html:14 +#: templates/client/service/tickets.html:17 +#: templates/client/service/tickets.html:25 +#: templates/client/service/tour.html:367 +#: templates/client/service/translator.html:369 +msgid "Билеты на выставку" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:138 +msgid "Забронируйте площадь по лучшей цене" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:152 +#: templates/client/includes/exposition/exposition_object.html:131 +msgid "Фотографии с прошлой выставки" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:239 +#: templates/client/includes/exposition/exposition_object.html:237 +msgid "Все участники" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:260 +#: templates/client/includes/exposition/exposition_object.html:258 +msgid "Привлекайте целевых посетителей на стенд" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:303 +#: templates/client/includes/exposition/exposition_object.html:300 +#: templates/client/includes/exposition/statistic.html:112 +#: templates/client/includes/place/place_info.html:9 +msgid "Общая выставочная площадь" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:305 +#: templates/client/includes/exposition/exposition_object.html:302 +#: templates/client/includes/place/place_info.html:28 +#: templates/client/includes/place/place_info.html:34 +msgid "м²" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:329 +#: templates/client/includes/exposition/exposition_object.html:324 +msgid "Ближайшие выставки по тематике" +msgstr "" + +#: templates/client/includes/exposition/expo_paid.html:379 +#: templates/client/includes/exposition/expo_paid.html:380 +#: templates/client/includes/exposition/exposition_object.html:385 +#: templates/client/includes/exposition/exposition_object.html:386 +msgid "Выставки по тематике " +msgstr "" + +#: templates/client/includes/exposition/price.html:74 +#: templates/client/organiser/add_event.html:418 +#: templates/client/wizard/second_step.html:71 +msgid "Стоимость посещения и участия" +msgstr "" + +#: templates/client/includes/exposition/price.html:82 +msgid "Для посещения" +msgstr "" + +#: templates/client/includes/exposition/price.html:84 +#: templates/client/organiser/add_event.html:423 +#: templates/client/wizard/second_step.html:79 +msgid "Стоимость билетов" +msgstr "" + +#: templates/client/includes/exposition/price.html:101 +#: templates/client/includes/exposition/price.html:134 +msgid "на 1 день" +msgstr "" + +#: templates/client/includes/exposition/price.html:114 +#: templates/client/includes/exposition/price.html:142 wizard/forms.py:55 +#: wizard/forms.py:57 +msgid "на все дни" +msgstr "" + +#: templates/client/includes/exposition/price.html:120 +#: templates/client/organiser/add_event.html:447 +#: templates/client/wizard/second_step.html:105 +msgid "Предварительная регистрация" +msgstr "" + +#: templates/client/includes/exposition/price.html:149 +msgid "Регистрация на" +msgstr "" + +#: templates/client/includes/exposition/price.html:149 +msgid "стойке" +msgstr "" + +#: templates/client/includes/exposition/price.html:157 +#: templates/client/includes/exposition/price.html:161 +msgid "Заказать билет" +msgstr "" + +#: templates/client/includes/exposition/price.html:168 +msgid "Выставка открыта для" +msgstr "" + +#: templates/client/includes/exposition/price.html:178 +msgid "Для участия" +msgstr "" + +#: templates/client/includes/exposition/price.html:180 +#: templates/client/organiser/add_event.html:479 +#: templates/client/wizard/second_step.html:146 +msgid "Стоимость аренды 1м²" +msgstr "" + +#: templates/client/includes/exposition/price.html:194 wizard/forms.py:60 +msgid "оборудованная площадь" +msgstr "" + +#: templates/client/includes/exposition/price.html:207 wizard/forms.py:61 +msgid "необорудованная площадь" +msgstr "" + +#: templates/client/includes/exposition/price.html:220 wizard/forms.py:62 +msgid "открытая площадь" +msgstr "" + +#: templates/client/includes/exposition/price.html:226 +msgid "Цены на площадь доступны по запросу" +msgstr "" + +#: templates/client/includes/exposition/price.html:243 +msgid "Крайний срок подачи заявки" +msgstr "" + +#: templates/client/includes/exposition/statistic.html:114 +msgid "м" +msgstr "" + +#: templates/client/includes/exposition/statistic.html:128 +msgid "стран-участниц" +msgstr "" + +#: templates/client/includes/index/blogs.html:6 +msgid "Обзоры и аналитика" +msgstr "" + +#: templates/client/includes/index/blogs.html:7 +msgid "Все обзоры" +msgstr "" + +#: templates/client/includes/index/confs.html:9 +#: templates/client/includes/index/expos.html:9 +msgid "Все тематики" +msgstr "" + +#: templates/client/includes/index/main_date_block.html:31 +msgid "года" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_list.html:56 +msgid "Все фотографии" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_list.html:57 +msgid "фотографий" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:86 +#: templates/client/photoreport/gallery.html:89 +msgid "На фотографии отмечены" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:92 +#: templates/client/photoreport/gallery.html:95 +msgid "Коментарии" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:104 +#: templates/client/photoreport/gallery.html:107 +msgid "Оставьте свой комментарий" +msgstr "" + +#: templates/client/includes/place/place_info.html:29 +msgid "закрытая выставочная площадь" +msgstr "" + +#: templates/client/includes/place/place_info.html:35 +msgid "открытая выставочная площадь" +msgstr "" + +#: templates/client/includes/place/place_info.html:63 +msgid "Ежегодно проводится" +msgstr "" + +#: templates/client/includes/place/place_info.html:73 +#: templates/client/popups/announce_subscription.html:9 +msgid "событий" +msgstr "" + +#: templates/client/includes/place/place_list.html:38 +#: templates/client/includes/place/search_result.html:41 +msgid "описание" +msgstr "" + +#: templates/client/includes/place/place_list.html:47 +#: templates/client/includes/place/search_result.html:51 +msgid "Найти отели поблизости" +msgstr "" + +#: templates/client/includes/place/place_object.html:20 +msgid "Далее..." +msgstr "" + +#: templates/client/includes/place/place_object.html:72 +msgid "Схема павильонов" +msgstr "" + +#: templates/client/includes/place/place_object.html:75 +msgid "Схема в pdf" +msgstr "" + +#: templates/client/includes/place/place_object.html:84 +msgid "Контактная информация" +msgstr "" + +#: templates/client/includes/place/place_object.html:95 +msgid "телефон" +msgstr "" + +#: templates/client/includes/place/place_object.html:98 +msgid "факс" +msgstr "" + +#: templates/client/includes/place/place_object.html:107 +msgid "Список событий" +msgstr "" + +#: templates/client/includes/place/place_object.html:151 +msgid "в расписание" +msgstr "" + +#: templates/client/includes/place/place_object.html:183 +msgid "Ближайшие выставочные центры" +msgstr "" + +#: templates/client/includes/place/place_services.html:4 +msgid "Услуги" +msgstr "" + +#: templates/client/includes/place/place_services.html:9 +msgid "Банк / банкоматы / обмен валюты" +msgstr "" + +#: templates/client/includes/place/place_services.html:29 +msgid "Онлайн-регистрация" +msgstr "" + +#: templates/client/includes/place/place_services.html:32 +msgid "Кафе и рестораны" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:10 +msgid "Ваша подписка активирована!" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:16 +msgid "" +"Мы очень рады, что теперь каждую среду вместе с другими профессионалами " +"бизнеса Вы будете получать анонсы из календаря событий Expomap. Важные " +"выставки и конференции не останутся незамеченными!" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:18 +msgid "Вы всегда можете изменить параметры своей подписки:" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:20 +msgid "- добавить или изменить тематики;" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:21 +msgid "" +"- применить гео-фильтры (например, получать выставки только в г. Москва);" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:22 +msgid "- изменить периодичность получения писем;" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:23 +msgid "- отписаться! =(" +msgstr "" + +#: templates/client/newsletters/activation_complete.html:26 +msgid "" +"Мы будем рады любым Вашим пожелания по улучшению нашей рассылки - можете " +"отправлять их на адрес evm@expomap.ru" +msgstr "" + +#: templates/client/newsletters/activation_send.html:10 +msgid "Проверьте почту" +msgstr "" + +#: templates/client/newsletters/activation_send.html:17 +msgid "" +"Мы работаем для настоящих и живых подписчиков! Поэтому подтвердите свой " +"email, письмо уже на Вашей почте!" +msgstr "" + +#: templates/client/newsletters/activation_subject.txt:2 +msgid "Подтвердите вашу подписку" +msgstr "" + +#: templates/client/newsletters/activation_template.html:43 +msgid "Ваша подписка на портале" +msgstr "" + +#: templates/client/newsletters/activation_template.html:57 +msgid "" +"Благодарим за подписку! Остался 1 шаг - подтвердить Ваш электронный адрес, " +"нажав на кнопку:" +msgstr "" + +#: templates/client/newsletters/activation_template.html:62 +msgid "подтвердить подписку" +msgstr "" + +#: templates/client/newsletters/subcribe.html:42 +msgid "Писковик деловых событий" +msgstr "" + +#: templates/client/newsletters/subcribe.html:47 +msgid "Анонсы выставок" +msgstr "" + +#: templates/client/newsletters/subcribe.html:47 +msgid "и конференций на ваш e-mail" +msgstr "" + +#: templates/client/newsletters/subcribe.html:48 +msgid "Хотите быть в курсе событий?" +msgstr "" + +#: templates/client/newsletters/subcribe.html:50 +msgid "" +"Получайте анонсы выставок и конференций на email каждую среду. Вы можете " +"выбрать несколько интересующих вас тематических направлений." +msgstr "" + +#: templates/client/newsletters/subcribe.html:50 +msgid "Пример письма" +msgstr "" + +#: templates/client/newsletters/subcribe.html:58 +#: templates/client/simple_pages/participation_landing.html:310 +msgid "Подписаться" +msgstr "" + +#: templates/client/newsletters/subcribe.html:68 +msgid "Выберите то, что вам интересно" +msgstr "" + +#: templates/client/newsletters/subcribe.html:69 +msgid "Ваши тематики:" +msgstr "" + +#: templates/client/newsletters/subcribe.html:105 +msgid "Открыть весь список" +msgstr "" + +#: templates/client/newsletters/subcribe.html:111 +msgid "Подписка на бесплатные учебные и практические материалы" +msgstr "" + +#: templates/client/newsletters/subcribe.html:121 +msgid "" +"Учимся эффективно участвовать в выставках и грамотно пиарить свою компанию " +"на событиях." +msgstr "" + +#: templates/client/newsletters/subcribe.html:130 +msgid "Создаем, наполняем и продвигаем собственные ивэнты." +msgstr "" + +#: templates/client/newsletters/subcribe.html:135 +msgid "ПОДПИСАТЬСЯ" +msgstr "" + +#: templates/client/newsletters/subcribe.html:136 +msgid "Нажимая «Подписаться», вы соглашаетесь получать" +msgstr "" + +#: templates/client/newsletters/subcribe.html:136 +msgid "материалы компании Expomap на свой электронный адрес" +msgstr "" + +#: templates/client/newsletters/subcribe.html:154 +#: templates/client/newsletters/subcribe.html:164 +msgid "Выберите тематику!" +msgstr "" + +#: templates/client/newsletters/unsubscribe_success.html:14 +msgid "Параметры вашей подписки изменены." +msgstr "" + +#: templates/client/newsletters/unsubscribe_success.html:21 +msgid "Вы успешно отписаны" +msgstr "" + +#: templates/client/newsletters/unsubscribe_success.html:29 +msgid "" +"Мы очень сожалеем, что потеряли такого ценного подписчика как Вы! =( Но " +"будем рады видеть Вас снова!" +msgstr "" + +#: templates/client/organiser/add_event.html:7 +#: templates/client/organiser/add_event.html:12 +#: templates/client/wizard/second_step.html:21 +#: templates/client/wizard/third_step.html:19 +msgid "Добавить событие" +msgstr "" + +#: templates/client/organiser/add_event.html:19 +#: templates/client/wizard/second_step.html:29 +#: templates/client/wizard/third_step.html:28 +msgid "Шаг 1. Основная информация" +msgstr "" + +#: templates/client/organiser/add_event.html:25 +msgid "Тип события:" +msgstr "" + +#: templates/client/organiser/add_event.html:29 +msgid "семинар" +msgstr "" + +#: templates/client/organiser/add_event.html:30 +msgid "вебинар" +msgstr "" + +#: templates/client/organiser/add_event.html:38 +msgid "Выберите тематику" +msgstr "" + +#: templates/client/organiser/add_event.html:56 +msgid "Выберете ключевые теги" +msgstr "" + +#: templates/client/organiser/add_event.html:71 +#: templates/client/wizard/first_step.html:34 +msgid "Описание выставки" +msgstr "" + +#: templates/client/organiser/add_event.html:90 +msgid "Даты проведения" +msgstr "" + +#: templates/client/organiser/add_event.html:131 +#: templates/client/wizard/first_step.html:111 +msgid "специалисты" +msgstr "" + +#: templates/client/organiser/add_event.html:132 +#: templates/client/wizard/first_step.html:112 +msgid "специалисты и потребители" +msgstr "" + +#: templates/client/organiser/add_event.html:133 +#: templates/client/wizard/first_step.html:113 +msgid "широкая публика" +msgstr "" + +#: templates/client/organiser/add_event.html:138 +msgid "Еженедельно" +msgstr "" + +#: templates/client/organiser/add_event.html:139 +msgid "2 раза в месяц" +msgstr "" + +#: templates/client/organiser/add_event.html:140 +msgid "Ежемесячно" +msgstr "" + +#: templates/client/organiser/add_event.html:150 +msgid "Российско-Британская торговая палата" +msgstr "" + +#: templates/client/organiser/add_event.html:151 +msgid "Ассоциация Европейского Бизнеса" +msgstr "" + +#: templates/client/organiser/add_event.html:152 +msgid "Российский союз выставок и ярмарок" +msgstr "" + +#: templates/client/organiser/add_event.html:153 +msgid "Американская торговая\tпалата" +msgstr "" + +#: templates/client/organiser/add_event.html:154 +msgid "UFI" +msgstr "" + +#: templates/client/organiser/add_event.html:160 wizard/forms.py:41 +msgid "Веб-сайт (необязательно)" +msgstr "" + +#: templates/client/organiser/add_event.html:180 +#: templates/client/organiser/add_event.html:200 +msgid "чч:мм" +msgstr "" + +#: templates/client/organiser/add_event.html:217 +msgid "Один график на все дни" +msgstr "" + +#: templates/client/organiser/add_event.html:229 +msgid "Не выбрано ни одного файла" +msgstr "" + +#: templates/client/organiser/add_event.html:238 +msgid "сохранить как черновик" +msgstr "" + +#: templates/client/organiser/add_event.html:241 +#: templates/client/organiser/add_event.html:273 +#: templates/client/organiser/add_event.html:564 +#: templates/client/wizard/third_step.html:88 +msgid "далее" +msgstr "" + +#: templates/client/organiser/add_event.html:249 +msgid "Шаг 2. Добавление фото" +msgstr "" + +#: templates/client/organiser/add_event.html:251 +#: templates/client/wizard/third_step.html:54 +msgid "+ 1,2 балла к рейтингу" +msgstr "" + +#: templates/client/organiser/add_event.html:260 wizard/forms.py:73 +msgid "выберите фотографии" +msgstr "" + +#: templates/client/organiser/add_event.html:263 +#: templates/client/organiser/add_event.html:559 +#: templates/client/wizard/second_step.html:236 +#: templates/client/wizard/third_step.html:74 +msgid "" +"более полная информация повышает рейтинг вашего мероприятия и позволяет " +"ранжировать его выше других" +msgstr "" + +#: templates/client/organiser/add_event.html:270 +msgid "пропустить этот ша" +msgstr "" + +#: templates/client/organiser/add_event.html:281 +msgid "Шаг 3. Статистика и условия участия тест" +msgstr "" + +#: templates/client/organiser/add_event.html:283 +#: templates/client/wizard/second_step.html:45 +msgid "+ 0,9 баллов к рейтингу" +msgstr "" + +#: templates/client/organiser/add_event.html:299 +msgid "Статистика за" +msgstr "" + +#: templates/client/organiser/add_event.html:304 +msgid "Выберите год" +msgstr "" + +#: templates/client/organiser/add_event.html:330 +#, fuzzy +msgid "Страны:" +msgstr "Страна" + +#: templates/client/organiser/add_event.html:335 +#: templates/client/organiser/add_event.html:365 +#: templates/client/popups/place.html:78 +msgid "Россия" +msgstr "" + +#: templates/client/organiser/add_event.html:338 +#: templates/client/organiser/add_event.html:370 +#: templates/client/popups/place.html:80 +msgid "Украина" +msgstr "" + +#: templates/client/organiser/add_event.html:341 +#: templates/client/organiser/add_event.html:375 +msgid "Беларусь" +msgstr "" + +#: templates/client/organiser/add_event.html:344 +#: templates/client/organiser/add_event.html:380 +msgid "Бельгия" +msgstr "" + +#: templates/client/organiser/add_event.html:347 +#: templates/client/organiser/add_event.html:385 +#: templates/client/popups/place.html:81 +msgid "Германия" +msgstr "" + +#: templates/client/organiser/add_event.html:350 +#: templates/client/organiser/add_event.html:390 +msgid "Франция" +msgstr "" + +#: templates/client/organiser/add_event.html:414 +msgid "добавить данные за другой период" +msgstr "" + +#: templates/client/organiser/add_event.html:430 +#: templates/client/organiser/add_event.html:440 +#: templates/client/organiser/add_event.html:456 +#: templates/client/organiser/add_event.html:466 +#: templates/client/organiser/add_event.html:485 +#: templates/client/organiser/add_event.html:495 +#: templates/client/organiser/add_event.html:505 +#: templates/client/organiser/add_event.html:527 +#: templates/client/wizard/second_step.html:88 +#: templates/client/wizard/second_step.html:97 +#: templates/client/wizard/second_step.html:118 +#: templates/client/wizard/second_step.html:127 +#: templates/client/wizard/second_step.html:162 +#: templates/client/wizard/second_step.html:171 +#: templates/client/wizard/second_step.html:198 +msgid "руб" +msgstr "" + +#: templates/client/organiser/add_event.html:473 +#: templates/client/wizard/second_step.html:135 +msgid "Регистрация на стойке" +msgstr "" + +#: templates/client/organiser/add_event.html:514 +#: templates/client/wizard/second_step.html:182 +msgid "Минимальная площадь:" +msgstr "" + +#: templates/client/organiser/add_event.html:522 +#: templates/client/wizard/second_step.html:193 +msgid "Регистрационный взнос:" +msgstr "" + +#: templates/client/organiser/add_event.html:536 +#: templates/client/wizard/second_step.html:208 +msgid "Крайний срок подачи заявки:" +msgstr "" + +#: templates/client/organiser/add_event.html:556 +#: templates/client/wizard/third_step.html:84 +msgid "пропустить этот шаг" +msgstr "" + +#: templates/client/password_reset/base.html:41 +msgid "Восстановить" +msgstr "" + +#: templates/client/photoreport/photoreport_catalog.html:25 +msgid "Ничего не найдено" +msgstr "" + +#: templates/client/popups/advertise.html:6 +#: templates/client/service/build_stand.html:67 +#: templates/client/service/catalog.html:67 +#: templates/client/service/participation.html:98 +#: templates/client/service/remotely.html:91 +#: templates/client/service/tickets.html:93 +#: templates/client/service/tour.html:199 +#: templates/client/service/translator.html:118 +#: templates/client/specialist_catalog/catalog_detailed.html:146 +msgid "Ваши контактные данные" +msgstr "" + +#: templates/client/popups/advertise.html:10 +msgid "" +"Оставьте свои контактные данные. В кратчайшие сроки мы с Вами свяжемся, " +"чтобы подобрать наиболее подходящие рекламные инструменты!" +msgstr "" + +#: templates/client/popups/advertise.html:30 +#: templates/client/simple_pages/advertising.html:122 +#: templates/client/simple_pages/advertising.html:144 +#: templates/client/simple_pages/advertising.html:164 +msgid "Заказать услугу" +msgstr "" + +#: templates/client/popups/advertise_member.html:9 +msgid "Вы хотите мотивировать участников прийти на конференцию?" +msgstr "" + +#: templates/client/popups/advertise_member.html:9 +msgid "Дайте визуальную информацию о спикерах на странице конференции на" +msgstr "" + +#: templates/client/popups/advertise_member.html:9 +msgid "" +"Это отличная возможность показать масштаб и качество Вашего мероприятия!" +msgstr "" + +#: templates/client/popups/advertise_member.html:10 +msgid "Оставьте свои контакты, и мы вышлем Вам информацию о вариантах и ценах!" +msgstr "" + +#: templates/client/popups/advertise_member.html:49 +msgid "Рекламировать" +msgstr "" + +#: templates/client/popups/announce_subscription.html:9 +msgid "Анонсы" +msgstr "" + +#: templates/client/popups/announce_subscription.html:9 +msgid "на ваш email" +msgstr "" + +#: templates/client/popups/announce_subscription.html:22 +msgid "" +"Более 40 000 профессионалов получают наши анонсы событий каждую " +"среду. Присоединяйтесь!" +msgstr "" + +#: templates/client/popups/announce_subscription.html:44 +msgid "Хочу быть в курсе" +msgstr "" + +#: templates/client/popups/announces.html:17 +msgid "Пример рассылки" +msgstr "" + +#: templates/client/popups/callback.html:6 +msgid "Обратный звонок" +msgstr "" + +#: templates/client/popups/callback.html:10 +msgid "" +"Вам удобнее, чтобы мы Вам позвонили? Укажите контактный номер телефона и " +"имя, и наши консультанты свяжутся с Вами." +msgstr "" + +#: templates/client/popups/callback.html:24 +#: templates/client/popups/issue_organizer.html:39 +#: templates/client/simple_pages/participation_landing.html:333 +msgid "Отправить запрос" +msgstr "" + +#: templates/client/popups/create_company.html:6 +msgid "Создание компании" +msgstr "" + +#: templates/client/popups/create_company.html:15 +msgid "например: Expomap" +msgstr "" + +#: templates/client/popups/create_company.html:24 +msgid "результат: expomap/members/url" +msgstr "" + +#: templates/client/popups/create_company.html:35 +msgid "Создать" +msgstr "" + +#: templates/client/popups/issue_organizer.html:6 +msgid "Вопрос организатору" +msgstr "" + +#: templates/client/popups/issue_organizer.html:11 +msgid "Оставьте свои контакты и вопрос, и мы направим его организатору" +msgstr "" + +#: templates/client/popups/login.html:5 +msgid "Вход в личный кабинет" +msgstr "" + +#: templates/client/popups/login.html:11 +msgid "Ваш адрес электронной почты" +msgstr "" + +#: templates/client/popups/login.html:17 +msgid "Ваш пароль" +msgstr "" + +#: templates/client/popups/login.html:19 +msgid "Напомнить пароль" +msgstr "" + +#: templates/client/popups/login.html:23 +msgid "войти" +msgstr "" + +#: templates/client/popups/login.html:24 +msgid "Запомнить" +msgstr "" + +#: templates/client/popups/login.html:27 +#: templates/client/popups/register.html:46 +#: templates/client/simple_pages/expo_seminar.html:81 +#: templates/client/simple_pages/expo_seminar.html:174 +msgid "Зарегистрироваться" +msgstr "" + +#: templates/client/popups/login.html:34 +#: templates/client/popups/register.html:54 +msgid "или войдите с помощью" +msgstr "" + +#: templates/client/popups/period.html:20 +#: templates/client/popups/place.html:93 templates/client/popups/theme.html:81 +msgid "Искать" +msgstr "" + +#: templates/client/popups/period.html:20 +#: templates/client/popups/theme.html:83 +msgid "Уточнить географию" +msgstr "" + +#: templates/client/popups/period.html:20 +#: templates/client/popups/place.html:95 +msgid "Уточнить тему" +msgstr "" + +#: templates/client/popups/place.html:74 +msgid "Быстрый выбор" +msgstr "" + +#: templates/client/popups/place.html:76 +msgid "Москва" +msgstr "" + +#: templates/client/popups/place.html:77 +msgid "Санкт-Петербург" +msgstr "" + +#: templates/client/popups/place.html:79 +msgid "Киев" +msgstr "" + +#: templates/client/popups/place.html:82 +msgid "Китай" +msgstr "" + +#: templates/client/popups/place.html:94 templates/client/popups/theme.html:82 +msgid "Очистить" +msgstr "" + +#: templates/client/popups/place.html:96 templates/client/popups/theme.html:84 +msgid "Уточнить дату" +msgstr "" + +#: templates/client/popups/place_type.html:5 +msgid "Тип места" +msgstr "" + +#: templates/client/popups/pswd_recovery.html:7 +msgid "Востановить пароль" +msgstr "" + +#: templates/client/popups/pswd_recovery.html:18 +msgid "Востановить" +msgstr "" + +#: templates/client/popups/reg_send.html:6 +msgid "Благодарим за регистрацию" +msgstr "" + +#: templates/client/popups/reg_send.html:10 +msgid "На указанный Вами e-mail отправлено письмо для подтверждения." +msgstr "" + +#: templates/client/popups/reg_send.html:11 +msgid "" +"Пожалуйста, перейдите по ссылке, указанной в письме, и завершите регистрацию!" +msgstr "" + +#: templates/client/popups/reg_send.html:12 +msgid "" +"Ссылка будет активна 3 дня. Если в течение этого времени Вы не " +"воспользуетесь ею, Ваши данные будут автоматически удалены." +msgstr "" + +#: templates/client/popups/reg_send.html:14 +msgid "Если Вы не получили письмо - обновите страницу либо нажмите" +msgstr "" + +#: templates/client/popups/reg_send.html:14 +msgid "здесь" +msgstr "" + +#: templates/client/popups/reg_send.html:14 +msgid "письмо будет выслано вновь." +msgstr "" + +#: templates/client/popups/register.html:15 +msgid "например, свое имя" +msgstr "" + +#: templates/client/popups/register.html:23 +msgid "например, свою фамилию" +msgstr "" + +#: templates/client/popups/register.html:30 +msgid "например, ivanova@mail.ru" +msgstr "" + +#: templates/client/popups/register.html:36 +#: templates/client/popups/register.html:42 +msgid "пароль должен иметь не меньше 6 символов" +msgstr "" + +#: templates/client/popups/register.html:48 +msgid "Ошибка" +msgstr "" + +#: templates/client/popups/user_information.html:8 +msgid "Завершите регистрацию" +msgstr "" + +#: templates/client/popups/user_information.html:108 +msgid "завершить регистрацию" +msgstr "" + +#: templates/client/search/search.html:4 +msgid "Search" +msgstr "" + +#: templates/client/search/search.html:18 +msgid "Results" +msgstr "" + +#: templates/client/search/search.html:25 +msgid "No results found." +msgstr "" + +#: templates/client/service/build_stand.html:13 +#: templates/client/service/build_stand.html:16 +#: templates/client/service/build_stand.html:25 +msgid "Строительство стенда" +msgstr "" + +#: templates/client/service/build_stand.html:25 +#: templates/client/service/translator.html:26 +msgid "на" +msgstr "" + +#: templates/client/service/build_stand.html:41 +#: templates/client/service/catalog.html:41 +msgid "Предлагаем Вам заказать печатный каталог выставки" +msgstr "" + +#: templates/client/service/build_stand.html:45 +#: templates/client/service/build_stand.html:51 +#: templates/client/service/catalog.html:45 +#: templates/client/service/catalog.html:51 +msgid "вся информация о выставке" +msgstr "" + +#: templates/client/service/build_stand.html:46 +#: templates/client/service/build_stand.html:52 +#: templates/client/service/catalog.html:46 +#: templates/client/service/catalog.html:52 +#: templates/client/service/tickets.html:43 +msgid "экономия времени" +msgstr "" + +#: templates/client/service/build_stand.html:47 +#: templates/client/service/build_stand.html:53 +#: templates/client/service/catalog.html:47 +#: templates/client/service/catalog.html:53 +msgid "все потенциальные контакты" +msgstr "" + +#: templates/client/service/build_stand.html:125 +#: templates/client/service/build_stand.html:149 +#: templates/client/service/catalog.html:125 +#: templates/client/service/catalog.html:149 +msgid "стоимость каталога" +msgstr "" + +#: templates/client/service/build_stand.html:134 +#: templates/client/service/build_stand.html:151 +#: templates/client/service/catalog.html:134 +#: templates/client/service/catalog.html:151 +#: templates/client/service/participation.html:179 +#: templates/client/service/tickets.html:162 +#: templates/client/service/tickets.html:180 +#: templates/client/service/translator.html:222 +#: templates/client/simple_pages/advertising_landing.html:411 +msgid "Сделать запрос" +msgstr "" + +#: templates/client/service/build_stand.html:138 +#: templates/client/service/build_stand.html:155 +#: templates/client/service/catalog.html:138 +#: templates/client/service/catalog.html:155 +msgid "" +"Стоимость каталога оплачивается c учетом доставки, которую обозначают " +"организаторы выставки (в среднем от 0 до 50 евро)." +msgstr "" + +#: templates/client/service/build_stand.html:172 +#: templates/client/service/catalog.html:172 +msgid "" +"

Внимание! Мы не можем гарантировать то, что все организаторы " +"предоставляют возможность заказа печатного каталога выставки. Получая Ваш " +"запрос, мы персонально связываемся с организатором конкретного события и " +"уточняем информацию об условиях приобретения. Только после этого мы " +"подтверждаем Вам возможность заказа.

" +msgstr "" + +#: templates/client/service/build_stand.html:182 +#: templates/client/service/build_stand.html:187 +#: templates/client/service/catalog.html:182 +#: templates/client/service/catalog.html:187 +#: templates/client/service/participation.html:286 +#: templates/client/service/remotely.html:269 +#: templates/client/service/tickets.html:284 +#: templates/client/service/translator.html:370 +msgid "Бизнес-тур «под ключ" +msgstr "" + +#: templates/client/service/build_stand.html:183 +#: templates/client/service/build_stand.html:188 +#: templates/client/service/catalog.html:183 +#: templates/client/service/catalog.html:188 +#: templates/client/service/participation.html:282 +#: templates/client/service/participation.html:287 +#: templates/client/service/remotely.html:266 +#: templates/client/service/remotely.html:270 +#: templates/client/service/tickets.html:280 +#: templates/client/service/tickets.html:285 +#: templates/client/service/tour.html:363 +#: templates/client/service/tour.html:368 +msgid "Устный переводчик" +msgstr "" + +#: templates/client/service/build_stand.html:184 +#: templates/client/service/build_stand.html:189 +#: templates/client/service/catalog.html:184 +#: templates/client/service/catalog.html:189 +#: templates/client/service/participation.html:14 +#: templates/client/service/participation.html:17 +#: templates/client/service/participation.html:24 +#: templates/client/service/remotely.html:272 +#: templates/client/service/tickets.html:282 +#: templates/client/service/tickets.html:287 +#: templates/client/service/tour.html:365 +#: templates/client/service/tour.html:370 +#: templates/client/service/translator.html:367 +#: templates/client/service/translator.html:372 +#: templates/client/simple_pages/participation_landing.html:48 +msgid "Участие в выставке" +msgstr "" + +#: templates/client/service/catalog.html:13 +#: templates/client/service/catalog.html:16 +#: templates/client/service/translator.html:14 +#: templates/client/service/translator.html:17 +msgid "Каталог" +msgstr "" + +#: templates/client/service/catalog.html:25 +msgid "Официальный каталог выставки" +msgstr "" + +#: templates/client/service/participation.html:38 +msgid "Увеличим эффективность Вашего участия в выставке" +msgstr "" + +#: templates/client/service/participation.html:38 +#, python-format +msgid "как минимум на 50%%" +msgstr "" + +#: templates/client/service/participation.html:42 +msgid "Мы поможем превратить посетителей стенда в клиентов" +msgstr "" + +#: templates/client/service/participation.html:43 +msgid "Мы удержим Вас от пустых трат" +msgstr "" + +#: templates/client/service/participation.html:44 +msgid "Мы посчитаем отдачу и покажем результаты в цифрах" +msgstr "" + +#: templates/client/service/participation.html:48 +msgid "Мы начнем привлекать Вам клиентов еще до выставки" +msgstr "" + +#: templates/client/service/participation.html:49 +msgid "Мы знаем тонкости и узкие места организации" +msgstr "" + +#: templates/client/service/participation.html:64 +msgid "Информация об экспоместе" +msgstr "" + +#: templates/client/service/participation.html:68 +msgid "Требуемая площадь" +msgstr "" + +#: templates/client/service/participation.html:77 +msgid "Вид площади" +msgstr "" + +#: templates/client/service/participation.html:170 +#: templates/client/service/remotely.html:166 +#: templates/client/service/remotely.html:186 +#: templates/client/service/translator.html:199 +#: templates/client/simple_pages/participation_landing.html:195 +#: templates/client/specialist_catalog/catalog_detailed.html:214 +msgid "отправить запрос" +msgstr "" + +#: templates/client/service/participation.html:187 +msgid "" +"Укажите в запросе исходную информацию о Ваших целях и задачах, и мы подберем" +msgstr "" + +#: templates/client/service/participation.html:188 +msgid "" +"которая будет им соответствовать. Далее мы свяжемся с организаторами, чтобы " +"уточнить наличие свободных площадей и цены, и вместе с Вами начнем создавать " +"концепцию Вашего участия.\" На \"Укажите в запросе исходную информацию о " +"Ваших целях и задачах, и мы проанализируем, насколько" +msgstr "" + +#: templates/client/service/participation.html:189 +msgid "" +"им соответствует. Далее мы свяжемся с организаторами, чтобы уточнить наличие " +"свободных площадей и цены, и вместе с Вами начнем создавать концепцию Вашего " +"участия." +msgstr "" + +#: templates/client/service/participation.html:193 +msgid "" +"Укажите в запросе исходную информацию о Ваших целях и задачах, и мы подберем " +"выставку которая будет им соответствовать. Далее мы свяжемся с " +"организаторами, чтобы уточнить наличие свободных площадей и цены, и вместе с " +"Вами начнем создавать концепцию Вашего участия." +msgstr "" + +#: templates/client/service/participation.html:216 +#: templates/client/service/remotely.html:200 +#: templates/client/service/tickets.html:213 +#: templates/client/service/tour.html:296 +#: templates/client/service/translator.html:300 +msgid "Отзывы клиентов" +msgstr "" + +#: templates/client/service/participation.html:236 +msgid "Волкова Елизавета" +msgstr "" + +#: templates/client/service/participation.html:239 +msgid "" +"Хочу поблагодарить команду маркетологов Expomap за организацию нашего " +"участия в выставке ТрансРоссия. Для нас это было чем-то новым, и благодаря " +"опыту ребят мы избежали большого количества проблем и решали все возникающие " +"вопросы очень оперативно. Если говорить о результатах работы на выставке, " +"то мы собрали за 4 дня более 300 рабочих контактов и запросов, часть из " +"которых выглядят очень перспективно. Мы сделали это вместе с Expomap и " +"хотим сказать спасибо за их идеи, глубокое погружение в наши задачи, " +"креативный подход и четкую помощь в реализации! Будем рады работать с вами и " +"в других проектах!" +msgstr "" + +#: templates/client/service/participation.html:267 +msgid "" +"Мы принимали участие со своим стендом в выставке Boot Duesseldorf в Германии " +"в январе 2014. Выражаем благодарность сотрудникам Expomap, а также " +"персональному консультанту Руслану Шапилову за оперативность, мы остались " +"довольны качеством оказанных услуг!" +msgstr "" + +#: templates/client/service/remotely.html:26 +msgid "Заочное посещение выставки" +msgstr "" + +#: templates/client/service/remotely.html:42 +msgid "" +"Услуга позволяет получить исчерпывающую информацию о выставке и ее " +"участниках, не выходя за пределы собственного офиса. Она особенно актуальна, " +"если вы по тем или иным причинам не можете лично присутствовать на выставке" +msgstr "" + +#: templates/client/service/remotely.html:44 +msgid "Как работает «Заочное посещение выставки»?" +msgstr "" + +#: templates/client/service/remotely.html:46 +msgid "По вашему запросу мы направим на выставку " +msgstr "" + +#: templates/client/service/remotely.html:46 +msgid "" +"собственного специалиста, который соберет для вас полный комплект документов " +"(буклеты, каталоги, cd, прайс-листы) по каждому участнику выставки, а также " +"приобретет ее официальный каталог. Дополнительно на каждом стенде выставки " +"мы можем оставить ваши визитки или другую информацию. Все материалы выставки " +"пересылаются к вам в офис сразу после ее окончания." +msgstr "" + +#: templates/client/service/remotely.html:48 +msgid "Преимущества услуги" +msgstr "" + +#: templates/client/service/remotely.html:51 +msgid "" +"Финансовая выгода - личное присутствие на одной выставке по затратам " +"эквивалентно заочному посещению 5 международных выставок" +msgstr "" + +#: templates/client/service/remotely.html:52 +msgid "Экономия времени и нервов" +msgstr "" + +#: templates/client/service/remotely.html:53 +msgid "" +"Возможность получить актуальную информацию даже в том случае, если у Вас нет " +"шансов посетить ее лично (упущение сроков, отказ в визе, параллельное " +"прохождения интересных Вам выставок в разных городах мира и др.)" +msgstr "" + +#: templates/client/service/remotely.html:67 +#: templates/client/service/tickets.html:60 +msgid "Информация о заказе" +msgstr "" + +#: templates/client/service/remotely.html:70 +msgid "Интересующие участники выставки" +msgstr "" + +#: templates/client/service/remotely.html:70 +msgid "(укажите продукцию или названия компаний)" +msgstr "" + +#: templates/client/service/remotely.html:77 +msgid "Дополнительно вы можете заказать" +msgstr "" + +#: templates/client/service/remotely.html:157 +#: templates/client/service/remotely.html:183 +msgid "Стоимость базового пакета услуги 400 €" +msgstr "" + +#: templates/client/service/remotely.html:181 +msgid "Стоимость базового пакета услуги 10 000 р." +msgstr "" + +#: templates/client/service/remotely.html:223 +msgid "" +"Остались очень довольны заочным посещением выставки Photokina — поехать " +"сами не смогли, но получили визитки нужных компаний. Большое cпасибо " +"сотрудникам за оперативность работы!" +msgstr "" + +#: templates/client/service/remotely.html:251 +msgid "" +"Особой оценки достойна оперативность предоставления услуг и их качество. " +"Хочу отметить профессионализм, организованность, добросовестность, " +"вежливость, грамотность сотрудников компании!" +msgstr "" + +#: templates/client/service/thank_u_page.html:8 +msgid "Ваша заявка успешно отправлена!" +msgstr "" + +#: templates/client/service/thank_u_page.html:19 +msgid "" +"

Благодарим Вас за использование сервиса ExpoMap.ru, мы очень ценим Ваше внимание и время.

" +msgstr "" + +#: templates/client/service/thank_u_page.html:20 +msgid "" +"В кратчайшие сроки наши консультанты свяжутся с Вами. Регламент ответа на " +"запрос -24 часа, в рабочие дни. Если по каким-либо причинам с Вами не " +"связались в указанный срок, или Вы недовольны обслуживанием, отправьте " +"короткое письмо с номером заявки на адрес evm@expomap.ru." +msgstr "" + +#: templates/client/service/thank_u_page.html:21 +msgid "" +"Также Вы можете позвонить нам для ускорения процесса, если Ваш запрос " +"является срочным." +msgstr "" + +#: templates/client/service/thank_u_page.html:26 +msgid "Что дальше Вы хотите делать?" +msgstr "" + +#: templates/client/service/thank_u_page.html:35 +msgid "Перейти к списку выставок по тематике" +msgstr "" + +#: templates/client/service/thank_u_page.html:58 +msgid "Вернуться к просмотру выставки" +msgstr "" + +#: templates/client/service/thank_u_page.html:69 +msgid "Перейти к списку ближайших выставок в городе" +msgstr "" + +#: templates/client/service/tickets.html:39 +msgid "Предлагаем Вам заранее заказать билеты на выставку" +msgstr "" + +#: templates/client/service/tickets.html:44 +msgid "нет очередей" +msgstr "" + +#: templates/client/service/tickets.html:45 +msgid "отчетные документы для бухгалтерии" +msgstr "" + +#: templates/client/service/tickets.html:64 +msgid "Количество дней посещения выставки" +msgstr "" + +#: templates/client/service/tickets.html:75 +#: templates/client/service/tour.html:81 +msgid "Количество человек" +msgstr "" + +#: templates/client/service/tickets.html:152 +#: templates/client/service/tickets.html:177 +msgid "Регистрация 2000 руб." +msgstr "" + +#: templates/client/service/tickets.html:153 +#: templates/client/service/tickets.html:178 +msgid "билет организатора" +msgstr "" + +#: templates/client/service/tickets.html:166 +msgid "" +"Стоимость билета, заявленная организатором, зависит от количества дней " +"посещения события, также может быть бесплатной" +msgstr "" + +#: templates/client/service/tickets.html:184 +msgid "" +"Стоимость билета, заявленная организатором, зависит от количества дней " +"посещения события, также может быть бесплатной" +msgstr "" + +#: templates/client/service/tickets.html:203 +msgid "" +"

Внимание! Мы не можем гарантировать то, что все организаторы " +"предоставляют возможность предварительной регистрации посетителей. Получая " +"ваш запрос, мы персонально связываемся с организаторами конкретного события " +"и уточняем информацию об условиях приобретения билетов. Только после этого " +"мы подтверждаем вам возможность.

" +msgstr "" + +#: templates/client/service/tickets.html:236 +msgid "" +"Мне понравилось работать с вашей компанией и в частности с Евгенией " +"Булавиной. Все быстро и предельно понятно. Большое спасибо!" +msgstr "" + +#: templates/client/service/tickets.html:264 +msgid "Спасибо Вам за Вашу работу. Все быстро и четко." +msgstr "" + +#: templates/client/service/tour.html:14 templates/client/service/tour.html:17 +#: templates/client/service/tour.html:25 +msgid "Посещение выставки" +msgstr "" + +#: templates/client/service/tour.html:41 +msgid "Посещение" +msgstr "" + +#: templates/client/service/tour.html:41 +msgid "" +"откроет для вас новые горизонты развития бизнеса, и мы готовы вам помочь с " +"этим! Организация любой деловой поездки представляет собой индивидуальный " +"тур, кропотливо подобранный под ваши конкретные пожелания" +msgstr "" + +#: templates/client/service/tour.html:43 +msgid "Сервис также включает ряд особенностей" +msgstr "" + +#: templates/client/service/tour.html:46 +msgid "" +"визовая поддержка оказывается только при бронировании отеля. На текущий " +"момент мы можем помочь с визой только клиентам из России (это связано с " +"правилами обработки анкет иностранными консульствами)" +msgstr "" + +#: templates/client/service/tour.html:47 +msgid "" +"бронирование отеля осуществляется не ниже 3*, так как мы должны быть " +"уверенными в Вашем комфортном размещении. Также Вам следует учесть, что " +"стоимость проживания в период крупных выставок значительно возрастает из-за " +"спроса (cправочно: для Европы в такие дни номер гостиницы 3-4* может стоить " +"от 150 евро/сутки). На цену размещения значительно влияет место расположения " +"отеля, в частности его близость/удаленность от центра или выставочного " +"комплекса" +msgstr "" + +#: templates/client/service/tour.html:48 +msgid "" +"индивидуальный бизнес-тур через туроператора, как правило, обходится дороже, " +"чем самостоятельный заказ через системы онлайн-бронирования (например, " +"отелей - Booking.com). Вы платите за индивидуальный сервис, гарантии и " +"консультационную поддержку до и во время Вашей поездки" +msgstr "" + +#: templates/client/service/tour.html:62 +msgid "Информация о бизнес-туре" +msgstr "" + +#: templates/client/service/tour.html:65 +msgid "Даты поездки" +msgstr "" + +#: templates/client/service/tour.html:88 +msgid "Условия размещения" +msgstr "" + +#: templates/client/service/tour.html:95 +msgid "Город отправления" +msgstr "" + +#: templates/client/service/tour.html:102 +msgid "Категория отеля" +msgstr "" + +#: templates/client/service/tour.html:113 +msgid "Расположение отеля" +msgstr "" + +#: templates/client/service/tour.html:121 +msgid "Примерный бюджет на отель" +msgstr "" + +#: templates/client/service/tour.html:130 +msgid "Дополнительные сервисы" +msgstr "" + +#: templates/client/service/tour.html:134 +msgid "Авиабилеты" +msgstr "" + +#: templates/client/service/tour.html:143 +msgid "Оформление визы" +msgstr "" + +#: templates/client/service/tour.html:144 +msgid "Трансфер" +msgstr "" + +#: templates/client/service/tour.html:145 +msgid "Билеты на выставку (приглашения)" +msgstr "" + +#: templates/client/service/tour.html:149 +#: templates/client/service/translator.html:26 +msgid "Услуги переводчика" +msgstr "" + +#: templates/client/service/tour.html:168 +msgid "Занятость" +msgstr "" + +#: templates/client/service/tour.html:170 +#: templates/client/service/translator.html:80 +#: templates/client/specialist_catalog/catalog_detailed.html:108 +msgid "дней" +msgstr "" + +#: templates/client/service/tour.html:174 +#: templates/client/service/translator.html:84 +#: templates/client/specialist_catalog/catalog_detailed.html:112 +msgid "часов в день" +msgstr "" + +#: templates/client/service/tour.html:181 +msgid "Экскурсионная программа" +msgstr "" + +#: templates/client/service/tour.html:187 +msgid "Пожелания" +msgstr "" + +#: templates/client/service/tour.html:272 +#: templates/client/service/tour.html:281 +msgid "Запрос туроператору" +msgstr "" + +#: templates/client/service/tour.html:319 +msgid "" +"Спасибо огромное данной компании (в частности, Евгении, с которой я " +"общалась). Девушка очень вежливая, отзывчивая. Я безумно ей благодарна за " +"помощь (а вопросов у меня была масса). Высококвалифицированный специалист. " +"Компания специалистов. Одни слова благодарности." +msgstr "" + +#: templates/client/service/tour.html:348 +msgid "" +"Очень нравится с Вами сотрудничать, так как всегда есть отклик на наши " +"требования. Разочарований не было. Спасибо за отличную работу!" +msgstr "" + +#: templates/client/service/translator.html:40 +msgid "Основные преимущества сотрудничества с нами" +msgstr "" + +#: templates/client/service/translator.html:43 +msgid "" +"оплата только за часы работы переводчика (никаких расходов на перелет, " +"проживание, питание и пр.)" +msgstr "" + +#: templates/client/service/translator.html:44 +msgid "знание местных языковых диалектов и обычаев ведения деловых переговоров" +msgstr "" + +#: templates/client/service/translator.html:45 +msgid "" +"отличная ориентация по выставочному комплексу, а также по городу прохождения " +"выставки" +msgstr "" + +#: templates/client/service/translator.html:61 +#: templates/client/specialist_catalog/catalog_detailed.html:89 +msgid "Информация о переводе" +msgstr "" + +#: templates/client/service/translator.html:89 +#: templates/client/specialist_catalog/catalog_detailed.html:117 +msgid "Даты работы" +msgstr "" + +#: templates/client/service/translator.html:227 +msgid "" +"Для получения подробной информации о стоимости услуг специализированного " +"переводчика, пожалуйста, отправьте предварительную заявку" +msgstr "" + +#: templates/client/service/translator.html:316 +#, fuzzy +msgid "Медицинская компания ЮНИКС" +msgstr "Описание компании" + +#: templates/client/service/translator.html:323 +msgid "" +"Мы, медицинская компания ЮНИКС, уже несколько лет обращаемся в компанию " +"Expomap за услугами переводчиков и переводчиков-гидов по всему миру. " +"Сотрудники компании всегда оперативно реагируют на запросы, очень " +"доброжелательны и приветливы, готовы идти навстречу. Качество работы " +"предоставляемых переводчиков всегда очень высокое, никаких нареканий по их " +"работе от наших сотрудников и клиентов не поступало, только положительные " +"отзывы. Надеемся на такое же приятное сотрудничество и в будущем!" +msgstr "" + +#: templates/client/service/translator.html:344 +msgid "ТоргХолодМаш" +msgstr "" + +#: templates/client/service/translator.html:351 +msgid "" +"Работу по организации переводчика оцениваю положительно. Скорость ответов и " +"работы была хорошей. В будущем воспользуюсь повторно услугами и порекомендую " +"партнерам. Ответственность переводчика и уровень был превосходным." +msgstr "" + +#: templates/client/simple_pages/about.html:14 +#: templates/client/simple_pages/about.html:44 +msgid "О нас" +msgstr "" + +#: templates/client/simple_pages/about.html:19 +msgid "Уважаемые клиенты, партнеры
и пользователи Expomap.Ru!" +msgstr "" + +#: templates/client/simple_pages/about.html:27 +msgid "" +"\n" +"\t\t\t\tМы сформировали штат консультантов, который с огромным " +"удовольствием делится своим опытом с Вами. Клиент, его настроение и\n" +"\t\t\t\tпотребности находятся в центре внимания работы наших консультантов, " +"мы отслеживаем уровень счастья наших клиентов и всегда готовы\n" +"\t\t\t\tсовершенствовать свой сервис!\n" +"\t\t\t\t" +msgstr "" + +#: templates/client/simple_pages/about.html:34 +#: templates/client/simple_pages/about.html:69 +msgid "" +"Мы сотрудничаем с более чем 500 организаторами деловых событий в " +"России и за рубежом. Также в нашу партнерскую сеть входят ведущие " +"тематические порталы Рунета, а также туроператоры, турагентства и рекламные " +"агентства." +msgstr "" + +#: templates/client/simple_pages/about.html:37 +msgid "" +"Мы всегда рады любым Вашим мнениям и пожеланиям - ведь то, что наша работа " +"востребована - лучшая похвала для нас и отличная мотивация для того, чтобы " +"стать еще удобнее, полезнее и эффективнее!" +msgstr "" + +#: templates/client/simple_pages/about.html:40 +msgid "" +"За почти 5 лет работы мы зарекомендовали себя как надежный партнер и " +"проводник в мире международных деловых событий. В нашей распределенной " +"команде специалисты различной квалификации: аналитики, переводчики, " +"стендисты, хостесс, промоутеры, которые работают по всему миру для наших " +"клиентов." +msgstr "" + +#: templates/client/simple_pages/about.html:45 +msgid "Команда" +msgstr "" + +#: templates/client/simple_pages/about.html:46 +msgid "Партнеры" +msgstr "" + +#: templates/client/simple_pages/about.html:47 +msgid "Контакты" +msgstr "" + +#: templates/client/simple_pages/about.html:48 +msgid "Отзывы" +msgstr "" + +#: templates/client/simple_pages/about.html:54 +msgid "Чем мы можем быть вам полезны?" +msgstr "" + +#: templates/client/simple_pages/about.html:55 +msgid "" +"Само название Expomap.Ru (Expo + Map) было выбрано неслучайно. Мы взяли на " +"себя роль Вашего навигатора в сфере деловых события и делаем все, чтобы " +"справляться с этой ролью максимально эффективно. Ежедневно мы:" +msgstr "" + +#: templates/client/simple_pages/about.html:57 +msgid "" +"освещаем деловые события со всего мира - различных тематик и " +"масштабов;" +msgstr "" + +#: templates/client/simple_pages/about.html:58 +msgid "консультируем Вас по вопросам их правильного подбора;" +msgstr "" + +#: templates/client/simple_pages/about.html:59 +msgid "выстраиваем вместе с Вами эффективную выставочную стратегию;" +msgstr "" + +#: templates/client/simple_pages/about.html:60 +msgid "" +"организуем Ваши поездки на выставки в качестве как посетителей, так и " +"участников," +msgstr "" + +#: templates/client/simple_pages/about.html:61 +msgid "устраняем языковые барьеры;" +msgstr "" + +#: templates/client/simple_pages/about.html:62 +msgid "" +"решаем многие другие вопросы, которые Вы ставите перед нами." +msgstr "" + +#: templates/client/simple_pages/about.html:64 +msgid "" +"Мы хорошо знаем зарубежные рынки, отлично ориентируемся в выставочных " +"центрах и всегда учитываем деловые обычаи каждой нации." +msgstr "" + +#: templates/client/simple_pages/about.html:65 +msgid "Чем мы гордимся!" +msgstr "" + +#: templates/client/simple_pages/about.html:66 +msgid "" +"За почти 5 лет работы мы зарекомендовали себя как надежный партнер и " +"проводник в мире международных деловых событий. В нашей распределенной " +"команде специалисты различной квалификации: аналитики, переводчики, " +"стендисты, хостесс, промоутеры, которые работают по всему миру для наших " +"клиентов." +msgstr "" + +#: templates/client/simple_pages/about.html:67 +msgid "" +"У нас создана собственная редакция, которая исходя из Ваших интересов " +"и пожеланий ежедневно отбирает самые интересные публикации из мира выставок " +"и конференций. Мы ведем cобственный профессиональный блог, активничаем в " +"социальных медиа" +msgstr "" + +#: templates/client/simple_pages/about.html:68 +msgid "" +"Мы сформировали штат консультантов, который с огромным удовольствием " +"делится своим опытом с Вами. Клиент, его настроение и потребности " +"находятся в центре внимания работы наших консультантов, мы отслеживаем " +"уровень счастья наших клиентов и всегда готовы совершенствовать свой сервис!" +msgstr "" + +#: templates/client/simple_pages/about.html:70 +msgid "" +"Изо дня в день мы стараемся быть самыми оперативными, информативными, " +"полезными и эффективными для Вас! " +msgstr "" + +#: templates/client/simple_pages/about.html:71 +msgid "" +"Я уверена, что познакомившись поближе с нашим ресурсом, Вы также полюбите " +"его и добавите в закладки. Мы всегда рады любым Вашим мнениям и пожеланиям " +"- ведь то, что наша работа востребована - лучшая похвала для нас и отличная " +"мотивация для того, чтобы стать еще удобнее, полезнее и эффективнее!" +msgstr "" + +#: templates/client/simple_pages/about.html:74 +msgid "С уважением и надеждой на сотрудничество" +msgstr "" + +#: templates/client/simple_pages/about.html:75 +#: templates/client/simple_pages/participation_landing.html:125 +msgid "Евгения Мануковская" +msgstr "" + +#: templates/client/simple_pages/about.html:85 +msgid "Евгения" +msgstr "" + +#: templates/client/simple_pages/about.html:85 +msgid "Мануковская" +msgstr "" + +#: templates/client/simple_pages/about.html:86 +msgid "руководитель,сооснователь " +msgstr "" + +#: templates/client/simple_pages/about.html:87 +msgid "Даже самое лучшее
может стать еще лучше" +msgstr "" + +#: templates/client/simple_pages/about.html:95 +msgid "Ольга
Мусатова" +msgstr "" + +#: templates/client/simple_pages/about.html:96 +#: templates/client/simple_pages/about.html:106 +#: templates/client/simple_pages/about.html:117 +msgid "ведущий консультант" +msgstr "" + +#: templates/client/simple_pages/about.html:97 +msgid "Главное внимание главным вещам" +msgstr "" + +#: templates/client/simple_pages/about.html:105 +msgid "Руслан
Шапилов" +msgstr "" + +#: templates/client/simple_pages/about.html:107 +msgid "Развиваться и получать удовольствие от жизни" +msgstr "" + +#: templates/client/simple_pages/about.html:116 +msgid "Евгения
Булавина" +msgstr "" + +#: templates/client/simple_pages/about.html:118 +msgid "Жить в настоящем - единственная возможность жить" +msgstr "" + +#: templates/client/simple_pages/about.html:127 +msgid "Валерия
Селезнева" +msgstr "" + +#: templates/client/simple_pages/about.html:128 +msgid "шеф-редактор" +msgstr "" + +#: templates/client/simple_pages/about.html:129 +msgid "Делай - где-то звякнет" +msgstr "" + +#: templates/client/simple_pages/about.html:138 +msgid "Светлана
Мурадян" +msgstr "" + +#: templates/client/simple_pages/about.html:139 +msgid "журналист" +msgstr "" + +#: templates/client/simple_pages/about.html:140 +msgid "Кто верит в свою удачу, удачлив" +msgstr "" + +#: templates/client/simple_pages/about.html:150 +msgid "Олег
Петров" +msgstr "" + +#: templates/client/simple_pages/about.html:151 +#: templates/client/simple_pages/about.html:162 +msgid "контент-менеджер" +msgstr "" + +#: templates/client/simple_pages/about.html:152 +msgid "Побеждает тот, кто побеждает себя" +msgstr "" + +#: templates/client/simple_pages/about.html:161 +msgid "Виктор
Трифонов" +msgstr "" + +#: templates/client/simple_pages/about.html:163 +msgid "Каждый день становиться чуть лучше" +msgstr "" + +#: templates/client/simple_pages/about.html:280 +msgid "заказать звонок" +msgstr "" + +#: templates/client/simple_pages/about.html:281 +msgid "Связь с дежурным менеджером в нерабочее время:" +msgstr "" + +#: templates/client/simple_pages/about.html:287 +msgid "Email по общим вопросам:" +msgstr "" + +#: templates/client/simple_pages/about.html:291 +msgid "Сотрудничество с событиями:" +msgstr "" + +#: templates/client/simple_pages/about.html:295 +msgid "Размещение рекламы:" +msgstr "" + +#: templates/client/simple_pages/about.html:303 +msgid "" +"Клиентский офис: бизнес-центр \"W-Plaza\", Варшавское ш, д.1, стр.1-2, " +"офис В-203" +msgstr "" + +#: templates/client/simple_pages/about.html:304 +msgid "" +"От м. Тульская: первый вагон из центра. Подняться по пешеходной лестнице " +"вверх вдоль съезда с третьего транспортного кольца (ТТК). На первом спуске " +"(слева) спуститься по лестнице к набережной и пройти под ТТК. Через въездные " +"ворота мимо шлагбаума пройти на территорию бизнес центра «W Plaza» в сторону " +"бело-коричневого здания. Центральный вход с противоположной от набережной " +"стороны здания. " +msgstr "" + +#: templates/client/simple_pages/about.html:317 +msgid "" +"Бэк-офис: Россия, 394019, Воронеж, ул. Холмистая, 56-Б, бизнес-центр " +"\"Корвет\", оф. 212 " +msgstr "" + +#: templates/client/simple_pages/advertising.html:10 +#: templates/client/simple_pages/advertising.html:15 +msgid "Реклама на сайте" +msgstr "" + +#: templates/client/simple_pages/advertising.html:21 +msgid "Рост аудитории Expomap 2009–2014 гг." +msgstr "" + +#: templates/client/simple_pages/advertising.html:40 +msgid "посещений в" +msgstr "" + +#: templates/client/simple_pages/advertising.html:40 +#: templates/client/simple_pages/advertising.html:85 +msgid "месяц" +msgstr "" + +#: templates/client/simple_pages/advertising.html:45 +msgid "целевых" +msgstr "" + +#: templates/client/simple_pages/advertising.html:45 +#: templates/client/simple_pages/advertising_landing.html:129 +msgid "просмотров" +msgstr "" + +#: templates/client/simple_pages/advertising.html:45 +msgid "вашей рекламы" +msgstr "" + +#: templates/client/simple_pages/advertising.html:85 +msgid "Посещений в" +msgstr "" + +#: templates/client/simple_pages/advertising.html:115 +msgid "" +"Вы можете таргетировать Вашу рекламу, привязывая ее показы к определенной " +"тематической отрасли (например, события в сфере строительства) или " +"географической зоне (например, выставки и конференции Москвы)." +msgstr "" + +#: templates/client/simple_pages/advertising.html:116 +msgid "" +"Возможные варианты размещения и размеры баннеров можно посмотреть на эскизе." +msgstr "" + +#: templates/client/simple_pages/advertising.html:121 +msgid "от" +msgstr "" + +#: templates/client/simple_pages/advertising.html:121 +#: templates/client/simple_pages/advertising.html:143 +#: templates/client/simple_pages/advertising.html:163 +msgid "руб." +msgstr "" + +#: templates/client/simple_pages/advertising.html:125 +msgid "за месяц размещения" +msgstr "" + +#: templates/client/simple_pages/advertising.html:128 +msgid "Скидки при длительном размещении, а также агентствам." +msgstr "" + +#: templates/client/simple_pages/advertising.html:138 +msgid "" +"Ваше событие всегда в Топе тематического календаря и выделено цветом — вне " +"зависимости от дат его проведения." +msgstr "" + +#: templates/client/simple_pages/advertising.html:147 +msgid "за месяц размещения в ТОП в 1 тематике" +msgstr "" + +#: templates/client/simple_pages/advertising.html:158 +msgid "" +"В связи с недавним появлением каталога, спешите занять первые места в " +"рубриках!" +msgstr "" + +#: templates/client/simple_pages/advertising.html:167 +msgid "за год за 1 тематический раздел" +msgstr "" + +#: templates/client/simple_pages/advertising.html:182 +msgid "Наша аудитория" +msgstr "" + +#: templates/client/simple_pages/advertising.html:184 +msgid "Маркетологи" +msgstr "" + +#: templates/client/simple_pages/advertising.html:185 +msgid "PR-специалисты" +msgstr "" + +#: templates/client/simple_pages/advertising.html:186 +msgid "Профильные специалисты" +msgstr "" + +#: templates/client/simple_pages/advertising.html:187 +msgid "Руководители департаментов" +msgstr "" + +#: templates/client/simple_pages/advertising.html:187 +msgid "(продажи, снабжение, маркетинг, PR и др.)" +msgstr "" + +#: templates/client/simple_pages/advertising.html:189 +msgid "Руководители компаний" +msgstr "" + +#: templates/client/simple_pages/advertising.html:190 +msgid "Собственники бизнеса" +msgstr "" + +#: templates/client/simple_pages/advertising.html:196 +msgid "Наши рекламодатели" +msgstr "" + +#: templates/client/simple_pages/advertising.html:199 +msgid "Организаторы мероприятий" +msgstr "" + +#: templates/client/simple_pages/advertising.html:200 +msgid "Туристические компании" +msgstr "" + +#: templates/client/simple_pages/advertising.html:201 +msgid "Гостиницы и системы бронирования" +msgstr "" + +#: templates/client/simple_pages/advertising.html:202 +msgid "Сервис-компании в сфере конгрессно-выставочного бизнеса" +msgstr "" + +#: templates/client/simple_pages/advertising.html:203 +msgid "Компании-производители" +msgstr "" + +#: templates/client/simple_pages/advertising.html:204 +msgid "Торговые компании" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:47 +msgid "" +"Хотите увеличить поток посетителей и участников на Ваши события? " +"Используйте аудиторию портала Expomap, самого посещаемого интернет-ресурса о " +"выставках и конференциях в России и СНГ!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:59 +msgid "Качество и количество аудитории влияют на эффективность" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:72 +msgid "Портрет наших посетителей" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:79 +msgid "Посещаемость
в месяц:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:86 +msgid "Просмотры страниц:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:93 +msgid "Источники трафика:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:103 +msgid "Средний возраст – 25-45 лет" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:104 +#, python-format +msgid "Пол – муж./жен. (48,5%%/51,5%%)" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:106 +msgid "Профессиональная деятельность:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:106 +msgid "руководители, собственники," +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:107 +msgid "маркетологи, технические специалисты" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:110 +msgid "Интересы:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:111 +msgid "бизнес, туризм, недвижимость," +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:112 +msgid "обустройство, финансы, здоровье" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:113 +msgid "и красота" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:119 +#: templates/client/simple_pages/advertising_landing.html:127 +msgid "более" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:121 +msgid "визитов" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:134 +msgid "Поисковые системы" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:135 +msgid "Прямые заходы" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:136 +msgid "Переходы с почтовых рассылок" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:137 +msgid "Сайты-партнеры" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:138 +msgid "Социальные сети" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:146 +msgid "по данным Яндекс Метрики за 1 – 29 февраля 2016 г." +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:153 +msgid "Рекламные инструменты бывают разные" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:155 +msgid "Медийная реклама" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:156 +msgid "Рассылки" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:157 +msgid "Имидж-страница события" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:158 +msgid "Приоритетная выдача в каталоге" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:159 +msgid "Реклама в социальных сетях" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:160 +msgid "Видеореклама на главной" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:161 +msgid "Размещение новостей-статей" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:162 +msgid "Спецпроекты" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:165 +msgid "Заказать продвижение события" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:171 +msgid "Как мы работаем с рекламодателями" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:181 +msgid "Получаем входящую" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:182 +msgid "информацию" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:186 +msgid "цели, задачи, аудитория, период," +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:186 +msgid "ограничения, бюджет" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:198 +msgid "Анализируем целевую" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:199 +msgid "аудиторию" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:203 +msgid "портрет, интересы, мотивация" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:215 +msgid "Составляем список" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:216 +msgid "инструментов и календарный" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:217 +msgid "план" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:221 +msgid "только подходящие инструменты" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:221 +msgid "для данной ЦА" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:233 +msgid "Согласовываем" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:234 +msgid "и утверждаем рекламную" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:235 +msgid "кампанию с организатором" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:247 +msgid "Делаем подробный отчет" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:248 +msgid "по итогам рекламной" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:249 +msgid "кампании" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:261 +msgid "Запускаем и контролируем" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:261 +msgid "кампанию, в случае" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:262 +msgid "необходимости заменяем" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:262 +msgid "инструменты" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:274 +msgid "Создаем эффективные" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:275 +msgid "рекламные носители" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:279 +msgid "сообщения, тексты, баннеры" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:280 +msgid "письма и др." +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:288 +#: templates/client/simple_pages/participation_landing.html:96 +msgid "Только индивидуальный и системный подход приносит результат!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:291 +msgid "Запросить план продвижения" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:298 +msgid "Волнуетесь о бюджете?" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:300 +msgid "Мы всегда учитываем Ваши возможности и стараемся" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:301 +msgid "подобрать максимально работающие инструменты" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:302 +msgid "" +"под бюджет рекламодателя. Если есть возможность, мы с радостью дарим " +"подарки и бонусы!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:305 +msgid "Ваш бюджет:" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:309 +msgid "12 000 – 20 000 руб." +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:313 +msgid "" +"Закажите имидж-страницу события и размещение в ТОП нужной Вам тематики, " +"чтобы перенаправить потенциальных участников и посетителей на Ваш сайт" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:321 +msgid "20 000 – 40 000 руб." +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:325 +msgid "" +"Используйте серию рассылок по подписчикам в совокупности с имиджевой " +"страницей и баннерной рекламой с таргетом на Вашу целевую аудиторию" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:333 +msgid "40 000 руб. и более" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:337 +#, python-format +msgid "" +"Создайте с нашим маркетологом персональный медиаплан на проект и " +"используйте любые рекламные инструменты со скидкой 35%%" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:350 +msgid "Если рекламодатели довольны, значит все было не зря!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:351 +msgid "Что говорят про нас наши клиенты?" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:400 +msgid "Не знаете, как оценить эффективность?" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:402 +msgid "Почитайте нашу" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:403 +msgid "статью об измерении качества площадки" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:407 +msgid "Надеюсь, мы вас убедили?" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:409 +msgid "Тогда, пришлите запрос или же позвоните нам (499) 999 12 07!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:427 +msgid "Отправить заявку" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:429 +msgid "Отправьте заявку и мы свяжемся с Вами" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:430 +msgid "удобным для Вас способом!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:436 +#: templates/client/simple_pages/participation_landing.html:324 +#: templates/client/simple_pages/participation_landing.html:340 +msgid "Ваш телефон" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:438 +#: templates/client/simple_pages/participation_landing.html:327 +#: templates/client/simple_pages/participation_landing.html:343 +msgid "Ваше событие" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:439 +#: templates/client/simple_pages/expo_seminar.html:269 +#: templates/client/simple_pages/expo_seminar.html:310 +#: templates/client/simple_pages/participation_landing.html:328 +#: templates/client/simple_pages/participation_landing.html:344 +msgid "Отправить" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:446 +#: templates/client/simple_pages/participation_landing.html:349 +msgid "Спасибо!" +msgstr "" + +#: templates/client/simple_pages/advertising_landing.html:448 +#: templates/client/simple_pages/participation_landing.html:350 +msgid "Мы свяжемся с Вами ближайшее время!" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:9 +msgid "" +"Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую?" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:67 +#, fuzzy +msgid "Наш телефон:" +msgstr "Контактный телефон" + +#: templates/client/simple_pages/expo_seminar.html:77 +msgid "" +"«Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую?»" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:79 +msgid "25 июня 2015г. 10:30-12:30 Москва, Digital October, пресс-центр" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:80 +msgid "" +"

Только для партнеров выставочного портала Expomap
Участие бесплатное

" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:91 +msgid "" +"Практический семинар для маркетологов, руководителей выставочных проектов, а " +"также специалистов, ответственных за привлечение участников и посетителей на " +"деловые события." +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:94 +msgid "" +"\n" +"\t\t\t\t

Я знаю, что половина моего рекламного\n" +"\t\t\t\t\tбюджета расходуется впустую, вот\n" +"\t\t\t\t\tтольно не знаю, какая именно.
\n" +"\t\t\t\t\tДжон Ванамейкер,
легендарный американский коммерсант

\n" +"\t\t\t" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:108 +msgid "" +"В текущей конъюнктуре рынка грамотные компании не отказываются от рекламы и " +"маркетинга, а начинают считать эффект от каждого вложенного рубля. Они точно " +"знают, какая половина бюджета принесла клиентов, а от какой следует " +"отказаться. Именно такой подход позволяет не только сохранить или даже " +"увеличить количество участников и посетителей ваших событий, но и снизить " +"средние затраты на их привлечение." +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:110 +msgid "" +"Об этом мы и поговорим на семинаре вместе с практиками маркетинга Рунета." +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:111 +msgid "Программа мероприятия:" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:115 +msgid "Регистрация участников. Приветственный кофе" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:121 +msgid "Умные инструменты продвижения события: казнить нельзя, помиловать" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:123 +msgid "Каналы привлечения участников и посетителей в Рунете" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:124 +msgid "Построение эффективной коммуникации для каждого канала" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:125 +msgid "Медиаплан маркетолога события в условиях ограниченности ресурсов" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:131 +msgid "" +"
Евгения Мануковская
основатель Expomap" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:145 +msgid "Способы отслеживания эффективности каналов" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:147 +msgid "Настройка Google Tag Manager" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:148 +msgid "Когоргный анализ графика" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:149 +msgid "Обобщенные отчеты в Google Analytics" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:155 +msgid "" +"
Екатерина Герасименко
Заместитель " +"генерального директора по маркетингу Venta research Lab
" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:164 +msgid "Презентация партнерских программ Expomap для организаторов событий" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:170 +#: templates/client/wizard/first_step.html:81 +msgid "Место проведения:" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:171 +msgid "Пресс-центр Digital October Москва, Берсеневская набережная, 6, стр. 3" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:172 +msgid "Посмотреть на карте" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:177 +msgid "Есть вопросы?" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:182 +msgid "" +"Оставьте свои контактные данные, и мы пришлем Вам личное приглашение на " +"семинар или же доступ к онлайн-трансляции." +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:184 +msgid "Спешите, количество мест ограничено!" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:193 +msgid "И еще 5 причин для того, чтобы прийти:" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:197 +msgid "" +"
Практические инструменты
и рекомендации по успешному " +"продвижению
" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:200 +msgid "Вкусный кофе и итальянские закуски" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:203 +msgid "Подарки любимым партнерам" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:206 +msgid "Скидки на рекламу Expomap" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:209 +msgid "Отличные возможности для нетворкинга" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:216 +msgid "Зарегистрируйтесь бесплатно!" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:220 +msgid "ХОЧУ ПОПАСТЬ НА СЕМИНАР ЛИЧНО" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:223 +msgid "ХОЧУ СМОТРЕТЬ ОНЛАЙН-ТРАНСЛЯЦИЮ" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:238 +msgid "Запрос на приглашение на семинар" +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:244 +#: templates/client/simple_pages/expo_seminar.html:285 +msgid "Поля, выделенные красным — обязательны для заполнения." +msgstr "" + +#: templates/client/simple_pages/expo_seminar.html:279 +msgid "Запрос на онлайн-трансляцию" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:48 +msgid "амбициозный" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:48 +msgid "проект!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:56 +msgid "7 ocновных" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:56 +msgid "факторов" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:57 +msgid "влияющих на успех или неудачу любого выставочного проекта" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:62 +msgid "Цели и причины участия" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:67 +msgid "Выбранная выставка" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:72 +msgid "Концепция и креатив" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:77 +msgid "Своевременная реализация рутины" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:82 +msgid "Маркетинг и активность участника" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:87 +msgid "Поведение на стенде" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:92 +msgid "Работа с полученными контактами" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:102 +msgid "Что" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:102 +msgid "делать?" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:106 +msgid "Решение 1." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:107 +msgid "" +"Воспитать выставочного специалиста в своей компании." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:108 +msgid "" +"Необходимо выделить хотя бы 1 человека, который в течение минимум 2-3 " +"месяцев будет заниматься подготовкой к выставке." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:112 +msgid "Решение 2." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:113 +msgid "Доверить реализацию проекта профессионалам." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:115 +msgid "команда выставочных маркетологов" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:116 +msgid "" +"Мы сформировали штат консультантов, который с огромным удовольствием делится " +"своим опытом с Вами. Клиент, его настроение и потребности находятся в центре " +"внимания работы наших консультантов, мы отслеживаем уровень счастья наших " +"клиентов и всегда готовы совершенствовать свой сервис!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:121 +msgid "Евгени
Булавина ведущий консультант
" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:125 +msgid "руководитель, сооснователь" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:134 +msgid "почему" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:134 +msgid "мы?" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:139 +msgid "Мы ориентируемся в выставках" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:140 +msgid "" +"Expomap - самый посещаемый интернет-ресурс о выставках по рейтингу Mail.ru" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:144 +msgid "Мы рубим в маркетинге!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:145 +msgid "" +"Проведено несколько десятков рекламных проектов с крупнейшими " +"организаторами выставок" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:149 +msgid "Мы говорим на разных языках" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:150 +msgid "" +"Позвонить иностранному организатору? Проще простого! Кроме этого, мы " +"сотрудничаем с более чем 1000 переводчиками по всему миру" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:153 +msgid "Запросить презентацию услуги" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:159 +msgid "Этапы создания успешного" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:159 +msgid "выставочного проекта" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:164 +msgid "Подбор и анализ события, целей и задач участия" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:165 +msgid "" +"на этом этапе мы точно поймем, «стоит ли игра свеч» и нужно ли начинать " +"проект" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:169 +msgid "Разработка концепции участника" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:170 +msgid "" +"от расчета площади и выбора расположения и оформления стенда до точечных " +"коммуникаций" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:174 +msgid "Реализация организационной рутины" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:175 +msgid "от подачи заявки на участие до вывоза экспонатов" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:179 +msgid "Продвижение участника" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:180 +msgid "" +"не надо полностью полагаться только на организаторов выставки с их " +"маркетинговой компанией. Чем больше правильных коммуникаций, тем выше шансы " +"на успех!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:184 +msgid "Подготовка стендистов и рабочей группы для работы на выставке" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:185 +msgid "" +"любой самый крутой концепт может быть испорчен работой стендистов. Кто, что " +"и как должен делать на стенде – мы позаботимся об этом" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:189 +msgid "Создание системы учета целевых контактов" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:190 +msgid "" +"как правильно вести учет посетителей стенда? Как и когда связываться с ними " +"после выставки?" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:196 +msgid "" +"И это далеко не все, что мы делаем. Полную презентацию о наших возможностях " +"мы готовы предоставить Вам по запросу!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:204 +msgid "Отзывы клиентов" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:258 +msgid "Хотите воспитать своего выставочного специалиста?" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:259 +msgid "" +"Пройдите наши курсы по эффективному участию в онлайн-университете Нетологии!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:262 +msgid "Создание концепции участия в выставке" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:270 +#: templates/client/simple_pages/participation_landing.html:282 +msgid "начать" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:274 +msgid "Реализация концепции участия в выставках" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:290 +msgid "БИБЛИОТЕКА СТАТЕЙ по эффективному участию" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:304 +msgid "ПОДПИШИТЕСЬ на ПОЛЕЗНЫЕ СТАТЬИ" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:305 +msgid "" +"Подпишитесь, чтобы получать полезные статьи, видео и презентации,
а также " +"афишу важных событий, скидки и подарки." +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:312 +#, python-format +msgid "Нас читают уже %(specialist_count)s специалиста!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:317 +msgid "Запросить презентацию" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:318 +msgid "Отправьте заявку и мы пришлем Вам нашу презентацию!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:334 +msgid "" +"Оставьте свои контакты, и мы оперативно свяжемся с Вами для обсуждения " +"деталей!" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:354 +msgid "Подтвердите email" +msgstr "" + +#: templates/client/simple_pages/participation_landing.html:355 +msgid "" +"Мы работаем для настоящих и живых подписчиков, поэтому проверьте почту и " +"перейдите по ссылке в отправленном Вам письме!" +msgstr "" + +#: templates/client/specialist_catalog/catalog_detailed.html:65 +msgid "Города, в которых мы предоставляем переводчиков:" +msgstr "" + +#: templates/client/specialist_catalog/catalog_detailed.html:230 +msgid "день" +msgstr "" + +#: templates/client/specialist_catalog/catalog_detailed.html:289 +msgid "Отзывы клиентов:" +msgstr "" + +#: templates/client/wizard/first_step.html:16 +#, python-format +msgid "Шаг %(step)s. Основная информация" +msgstr "" + +#: templates/client/wizard/first_step.html:57 +msgid "Даты проведения:" +msgstr "" + +#: templates/client/wizard/first_step.html:88 +#, fuzzy +msgid "Страна:" +msgstr "Страна" + +#: templates/client/wizard/first_step.html:93 +msgid "Город:" +msgstr "" + +#: templates/client/wizard/first_step.html:105 +msgid "Аудитория:" +msgstr "" + +#: templates/client/wizard/first_step.html:117 +msgid "Периодичность:" +msgstr "" + +#: templates/client/wizard/first_step.html:128 +msgid "Членства и знаки качества:" +msgstr "" + +#: templates/client/wizard/first_step.html:150 +msgid "Время работы:" +msgstr "" + +#: templates/client/wizard/first_step.html:171 +msgid "Логотип:" +msgstr "" + +#: templates/client/wizard/first_step.html:197 +#: templates/client/wizard/second_step.html:42 +#: templates/client/wizard/third_step.html:40 +msgid "Шаг 2. Статистика и условия участия" +msgstr "" + +#: templates/client/wizard/first_step.html:203 +#: templates/client/wizard/second_step.html:248 +#: templates/client/wizard/third_step.html:51 +msgid "Шаг 3. Добавление фото" +msgstr "" + +#: templates/client/wizard/second_step.html:241 +msgid "Дале" +msgstr "" + +#: templates/client/wizard/wizard.html:6 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: templates/client/wizard/wizard.html:20 +msgid "first step" +msgstr "" + +#: templates/client/wizard/wizard.html:21 +msgid "prev step" +msgstr "" + +#: templates/registration/acquire_email.html:4 +msgid "Email confirmation" +msgstr "" + +#: templates/registration/acquire_email.html:8 +msgid "Enter your email" +msgstr "" + +#: templates/registration/acquire_email.html:11 +#: templates/registration/login.html:11 +#: templates/registration/registration_form.html:9 +msgid "Please correct the errors below:" +msgstr "" + +#: templates/registration/acquire_email.html:16 +#: templates/registration/registration_form.html:31 +msgid "Email address:" +msgstr "" + +#: templates/registration/acquire_email.html:21 +msgid "Submit" +msgstr "" + +#: templates/registration/acquire_email.html:27 +msgid "" +"Please enter your valid email, to activate account we will send you an email " +"on this e-mail address" +msgstr "" + +#: templates/registration/activate.html:4 +msgid "Account activated" +msgstr "" + +#: templates/registration/activate.html:7 +msgid "Account activated." +msgstr "" + +#: templates/registration/activate.html:10 +msgid "" +"Thanks for signing up! Now you can
log in" +msgstr "" + +#: templates/registration/activate.html:12 +#, python-format +msgid "" +"Sorry, it didn't work. Either your activation link was incorrect, or the " +"activation key for your account has expired; activation keys are only valid " +"for %(days)s days after registration." +msgstr "" + +#: templates/registration/activation_complete.html:4 +msgid "Активация завершена" +msgstr "" + +#: templates/registration/activation_complete.html:15 +msgid "Поздравляем! Вы успешно прошли регистрацию!" +msgstr "" + +#: templates/registration/activation_email.html:43 +msgid "Ваша регистрация на портале" +msgstr "" + +#: templates/registration/activation_email.html:57 +msgid "" +"Благодарим за регистрацию! Остался 1 шаг - подтвердить Ваш электронный " +"адрес, нажав на кнопку:" +msgstr "" + +#: templates/registration/activation_email.html:62 +msgid "подтвердить регистрацию" +msgstr "" + +#: templates/registration/activation_email.html:67 +msgid "Ваш логин:" +msgstr "" + +#: templates/registration/activation_email.html:72 +msgid "" +"В личном кабинете вам доступен собственный профиль, персональная лента событий,свое расписание, " +"сообщения и многое другое." +msgstr "" + +#: templates/registration/activation_email_subject.txt:2 +msgid "Активируйте ваш" +msgstr "" + +#: templates/registration/activation_email_subject.txt:2 +msgid "акаунт - вы имеете" +msgstr "" + +#: templates/registration/activation_email_subject.txt:2 +msgid "дня" +msgstr "" + +#: templates/registration/base.html:11 +msgid "Tagging Exploration" +msgstr "" + +#: templates/registration/login.html:4 templates/registration/login.html:8 +#: templates/registration/password_reset_complete.html:14 +msgid "Log in" +msgstr "" + +#: templates/registration/login.html:16 +msgid "Username:" +msgstr "" + +#: templates/registration/login.html:18 +#: templates/registration/registration_form.html:38 +msgid "Password:" +msgstr "" + +#: templates/registration/login.html:26 +msgid "" +"If you don't have an account, you can sign " +"up for one." +msgstr "" + +#: templates/registration/logout.html:4 +msgid "Logged out" +msgstr "" + +#: templates/registration/logout.html:7 +msgid "You've been logged out." +msgstr "" + +#: templates/registration/logout.html:8 +msgid "" +"Thanks for stopping by; when you come back, don't forget to log in again." +msgstr "" + +#: templates/registration/password_change_done.html:4 +#: templates/registration/password_change_done.html:8 +msgid "Password change successful" +msgstr "" + +#: templates/registration/password_change_done.html:10 +msgid "Your password was changed." +msgstr "" + +#: templates/registration/password_change_form.html:5 +#: templates/registration/password_change_form.html:9 +msgid "Password change" +msgstr "" + +#: templates/registration/password_change_form.html:11 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +#: templates/registration/password_change_form.html:16 +msgid "Old password:" +msgstr "" + +#: templates/registration/password_change_form.html:18 +#: templates/registration/password_reset_confirm.html:19 +msgid "New password:" +msgstr "" + +#: templates/registration/password_change_form.html:20 +#: templates/registration/password_reset_confirm.html:21 +msgid "Confirm password:" +msgstr "" + +#: templates/registration/password_change_form.html:22 +#: templates/registration/password_reset_confirm.html:22 +msgid "Change my password" +msgstr "" + +#: templates/registration/password_reset_complete.html:6 +#: templates/registration/password_reset_complete.html:10 +msgid "Password reset complete" +msgstr "" + +#: templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: templates/registration/password_reset_confirm.html:6 +#: templates/registration/password_reset_form.html:6 +#: templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "" + +#: templates/registration/password_reset_confirm.html:12 +msgid "Enter new password" +msgstr "" + +#: templates/registration/password_reset_confirm.html:14 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +#: templates/registration/password_reset_confirm.html:27 +msgid "Password reset unsuccessful" +msgstr "" + +#: templates/registration/password_reset_confirm.html:29 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: templates/registration/password_reset_done.html:6 +#: templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" + +#: templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "" + +#: templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: templates/registration/password_reset_form.html:12 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" + +#: templates/registration/password_reset_form.html:17 +msgid "E-mail address:" +msgstr "" + +#: templates/registration/password_reset_form.html:17 +msgid "Reset my password" +msgstr "" + +#: templates/registration/registration_complete.html:4 +#: templates/registration/social_registration_complete.html:4 +msgid "Registration complete" +msgstr "" + +#: templates/registration/registration_complete.html:7 +#: templates/registration/social_registration_complete.html:7 +msgid "Check your email" +msgstr "" + +#: templates/registration/registration_complete.html:8 +#: templates/registration/social_registration_complete.html:8 +msgid "" +"An activation link has been sent to the email address you supplied, along " +"with instructions for activating your account." +msgstr "" + +#: templates/registration/registration_form.html:4 +msgid "Sign up" +msgstr "" + +#: templates/registration/registration_form.html:12 +msgid "Create an account" +msgstr "" + +#: templates/registration/registration_form.html:17 +msgid "First name:" +msgstr "" + +#: templates/registration/registration_form.html:24 +msgid "Last name:" +msgstr "" + +#: templates/registration/registration_form.html:45 +msgid "Password (type again to catch typos):" +msgstr "" + +#: templates/registration/registration_form.html:57 +msgid "" +"Fill out the form to the left (all fields are required), and your account " +"will be created; you'll be sent an email with instructions on how to finish " +"your registration." +msgstr "" + +#: templates/registration/registration_form.html:59 +msgid "" +"We'll only use your email to send you signup instructions. We hate spam as " +"much as you do." +msgstr "" + +#: templates/registration/registration_form.html:61 +msgid "" +"This account will let you log into the ticket tracker, claim tickets, and be " +"exempt from spam filtering." +msgstr "" + +#: theme/models.py:31 +msgid "Тематики:" +msgstr "" + +#: theme/models.py:41 +msgid "Статья" +msgstr "" + +#: translator/forms.py:28 +msgid "Личный автомобиль" +msgstr "" + +#: translator/forms.py:29 +msgid "Дата рождения" +msgstr "" + +#: translator/forms.py:30 +msgid "Пол" +msgstr "" + +#: translator/forms.py:30 +msgid "Мужской" +msgstr "" + +#: translator/forms.py:30 +msgid "Женский" +msgstr "" + +#: translator/forms.py:51 +msgid "Цены" +msgstr "" + +#: translator/forms.py:53 +msgid "Скидки" +msgstr "" + +#: translator/forms.py:80 +msgid "У этого пользователя уже есть профиль переводчика" +msgstr "" + +#: webinar/forms.py:163 +msgid "Вебинар с таким названием уже существует" +msgstr "" + +#: wizard/forms.py:22 +#, fuzzy +msgid "Введите название выставки" +msgstr "Введите вашу фамилию" + +#: wizard/forms.py:25 wizard/forms.py:26 wizard/forms.py:65 +msgid "дд.мм.гг" +msgstr "" + +#: wizard/forms.py:54 wizard/forms.py:56 +msgid "на один день" +msgstr "" diff --git a/meta/forms.py b/meta/forms.py index fd3c009a..67fb7be2 100644 --- a/meta/forms.py +++ b/meta/forms.py @@ -6,10 +6,11 @@ from functions.translate import fill_with_signal from functions.admin_forms import AdminFilterForm from ckeditor.widgets import CKEditorWidget from hvad.forms import TranslatableModelForm +from django.utils.translation import ugettext as _ class MetaForm(forms.Form): - name = forms.CharField(label=u'Название страницы') + name = forms.CharField(label=_(u'Название страницы')) def __init__(self, *args, **kwargs): """ @@ -23,13 +24,13 @@ class MetaForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['title_%s' % code] = forms.CharField(label=u'Title', required=required, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Title'), required=required, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['description_%s' % code] = forms.CharField(label=u'Description', required=required, + self.fields['description_%s' % code] = forms.CharField(label=_(u'Description'), required=required, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label=u'Keywords', required=False, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Keywords'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['h1_%s' % code] = forms.CharField(label=u'H1', required=False, + self.fields['h1_%s' % code] = forms.CharField(label=_(u'H1'), required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, obj=None): diff --git a/meta/models.py b/meta/models.py index 7d167c34..d237a059 100644 --- a/meta/models.py +++ b/meta/models.py @@ -154,13 +154,13 @@ class SeoText(TranslatableModel): """ store seo data for specified urls """ - url = models.CharField(max_length=50, unique=True, verbose_name=u"URL: www.expomap.ru") + url = models.CharField(max_length=50, unique=True, verbose_name=_(u"URL: www.expomap.ru")) translations = TranslatedFields( - title=models.CharField(max_length=255, verbose_name=u"Заголовок"), - page_title=models.CharField(max_length=255, verbose_name=u"Тайтл страницы"), - description=models.CharField(max_length=1000, verbose_name=u"Дескрипшн"), - body=models.TextField(verbose_name=u"Текст") + title=models.CharField(max_length=255, verbose_name=_(u"Заголовок")), + page_title=models.CharField(max_length=255, verbose_name=_(u"Тайтл страницы")), + description=models.CharField(max_length=1000, verbose_name=_(u"Дескрипшн")), + body=models.TextField(verbose_name=_(u"Текст")) ) objects = SeoTextManager() @@ -205,4 +205,4 @@ class SeoText(TranslatableModel): return self.url -post_save.connect(post_save_handler, sender=MetaSetting) \ No newline at end of file +post_save.connect(post_save_handler, sender=MetaSetting) diff --git a/news/forms.py b/news/forms.py index 889400fb..42a6e08e 100644 --- a/news/forms.py +++ b/news/forms.py @@ -5,6 +5,7 @@ from django.contrib.contenttypes.models import ContentType from ckeditor.widgets import CKEditorWidget from django.core.exceptions import ValidationError from django.forms.util import ErrorList +from django.utils.translation import ugettext as _ #models and forms from models import News, TYPES from theme.models import Theme @@ -25,19 +26,19 @@ class NewsForm(forms.Form): save function saves data in News object. If it doesnt exist create new object """ - date = forms.DateField(label='Дата') - type = forms.ChoiceField(label='Тип новости', choices=[(item, item) for item in TYPES]) - paid = forms.BooleanField(label='Платная', required=False) + date = forms.DateField(label=_(u'Дата')) + type = forms.ChoiceField(label=_(u'Тип новости'), choices=[(item, item) for item in TYPES]) + paid = forms.BooleanField(label=_(u'Платная'), required=False) #relations - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all()) + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all()) #creates select input with empty choices cause it will be filled with ajax - tag = forms.MultipleChoiceField(label='Теги', required=False) - user = forms.ModelChoiceField(label='Организатор', queryset=User.objects.exclude(organiser__isnull=True), + tag = forms.MultipleChoiceField(label=_(u'Теги'), required=False) + user = forms.ModelChoiceField(label=_(u'Организатор'), queryset=User.objects.exclude(organiser__isnull=True), empty_label=None) # - event = forms.ChoiceField(label='Тип события', choices=[(None, ''), ('conference.Conference', 'Конференция'), - ('exposition.Exposition', 'Выставка')], required=False) - event_id = forms.ChoiceField(label='Событие', choices=[(None,'')], required=False) + event = forms.ChoiceField(label=_(u'Тип события'), choices=[(None, ''), ('conference.Conference', _(u'Конференция')), + ('exposition.Exposition', _(u'Выставка'))], required=False) + event_id = forms.ChoiceField(label=_(u'Событие'), choices=[(None,'')], required=False) #field for comparing tmp files key = forms.CharField(required=False, widget=forms.HiddenInput()) @@ -53,16 +54,16 @@ class NewsForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['main_title_%s' % code] = forms.CharField(label='Заголовок', required=required, + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['preview_%s' % code] = forms.CharField(label='Превью', required=required, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=required, widget=CKEditorWidget) + self.fields['preview_%s' % code] = forms.CharField(label=_(u'Превью'), required=required, widget=CKEditorWidget) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=required, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, id=None): @@ -124,7 +125,7 @@ class NewsForm(forms.Form): except: return main_title_ru - raise ValidationError('Новость с таким названием уже существует') + raise ValidationError(_(u'Новость с таким названием уже существует')) def clean(self): event_id = self.cleaned_data.get('event_id') diff --git a/news/models.py b/news/models.py index 96792e50..06398c36 100644 --- a/news/models.py +++ b/news/models.py @@ -4,6 +4,8 @@ from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic import copy +from django.utils.translation import ugettext as _ + #functions from functions.custom_fields import EnumField @@ -27,18 +29,18 @@ class News(TranslatableModel): object = generic.GenericForeignKey(content_type, object_id) url = models.SlugField(unique=True) - date = models.DateField(verbose_name='Дата') + date = models.DateField(verbose_name=_(u'Дата')) type = EnumField(values=TYPES) - theme = models.ManyToManyField('theme.Theme', verbose_name='Тема') - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', blank=True, null=True) - user = models.ForeignKey('accounts.User', verbose_name='Организатор', blank=True, null=True, + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Тема')) + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True) + user = models.ForeignKey('accounts.User', verbose_name=_(u'Организатор'), blank=True, null=True, on_delete=models.PROTECT) paid = models.BooleanField(default=0) - + translations = TranslatedFields( - main_title = models.CharField(verbose_name='Заголовок', max_length=255), - preview = models.TextField(verbose_name='Превью'), - description = models.TextField(verbose_name='Описание'), + main_title = models.CharField(verbose_name=_(u'Заголовок'), max_length=255), + preview = models.TextField(verbose_name=_(u'Превью')), + description = models.TextField(verbose_name=_(u'Описание')), #---meta data title = models.CharField(max_length=250, blank=True), descriptions = models.CharField(max_length=250, blank=True), @@ -95,4 +97,4 @@ class News(TranslatableModel): from django.db.models.signals import post_save from functions.signal_handlers import post_save_handler -post_save.connect(post_save_handler, sender=News) \ No newline at end of file +post_save.connect(post_save_handler, sender=News) diff --git a/organiser/forms.py b/organiser/forms.py index 48db9dec..ae5b165f 100644 --- a/organiser/forms.py +++ b/organiser/forms.py @@ -4,6 +4,7 @@ from django.conf import settings from ckeditor.widgets import CKEditorWidget from django.core.exceptions import ValidationError from django.core.validators import URLValidator +from django.utils.translation import ugettext as _ #models from models import Organiser from country.models import Country @@ -27,37 +28,37 @@ class OrganiserForm(forms.Form): save function saves data in Organiser object. If it doesnt exist create new object """ - url = forms.CharField(label='url', required=False) + url = forms.CharField(label=_(u'url'), required=False) #user = forms.ModelChoiceField(label='Пользователь', queryset=User.objects.all(), empty_label='',required=False) - country = forms.ChoiceField(label='Страна', choices=[(item.id, item.name) for item in Country.objects.all()]) - city = forms.CharField(label='Город', widget=forms.HiddenInput()) - theme = forms.MultipleChoiceField(label='Тематики', choices=[(item.id, item.name) for item in Theme.objects.language().all()]) - place_exposition = forms.MultipleChoiceField(label='Места проведения выставок', required=False, + country = forms.ChoiceField(label=_(u'Страна'), choices=[(item.id, item.name) for item in Country.objects.all()]) + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) + theme = forms.MultipleChoiceField(label=_(u'Тематики'), choices=[(item.id, item.name) for item in Theme.objects.language().all()]) + place_exposition = forms.MultipleChoiceField(label=_(u'Места проведения выставок'), required=False, choices=[(item.id, item.name) for item in PlaceExposition.objects.language().all()]) - place_conference = forms.MultipleChoiceField(label='Места проведения конференций', required=False, + place_conference = forms.MultipleChoiceField(label=_(u'Места проведения конференций'), required=False, choices=[(item.id, item.name) for item in PlaceConference.objects.all()]) #creates select input with empty choices cause it will be filled with ajax - tag = forms.CharField(label='Теги', widget=forms.HiddenInput(), required=False) - logo = forms.ImageField(label='Logo', required=False) + tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(), required=False) + logo = forms.ImageField(label=_(u'Logo'), required=False) - staff_number = forms.CharField(label='Количество сотрудников', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Количество сотрудников'})) + staff_number = forms.CharField(label=_(u'Количество сотрудников'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Количество сотрудников')})) #uses locationwidget - address = forms.CharField(label='Адрес', required=False, widget=LocationWidget) - - phone = forms.CharField(label='Телефон', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите телефон'})) - fax = forms.CharField(label='Факс', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите факс'})) - web_page = forms.CharField(label='Веб-сайт', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите адрес сайта'})) - email = forms.EmailField(label='Email', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите email'})) - events_number = forms.CharField(label='Количество мероприятий в год', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Количество'})) - foundation = forms.CharField(label='Год основания', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Год основания'})) + address = forms.CharField(label=_(u'Адрес'), required=False, widget=LocationWidget) + + phone = forms.CharField(label=_(u'Телефон'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите телефон')})) + fax = forms.CharField(label=_(u'Факс'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите факс')})) + web_page = forms.CharField(label=_(u'Веб-сайт'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите адрес сайта')})) + email = forms.EmailField(label=_(u'Email'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите email')})) + events_number = forms.CharField(label=_(u'Количество мероприятий в год'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Количество')})) + foundation = forms.CharField(label=_(u'Год основания'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Год основания')})) def __init__(self, *args, **kwargs): """ @@ -71,20 +72,20 @@ class OrganiserForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['specialization_%s' % code] = forms.CharField(label='Специализация', required=False) - self.fields['description_%s' % code] = forms.CharField(label='Описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['specialization_%s' % code] = forms.CharField(label=_(u'Специализация'), required=False) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['representation_%s' % code] = forms.CharField(label='Представительства', required=False, max_length=255, + self.fields['representation_%s' % code] = forms.CharField(label=_(u'Представительства'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['address_inf_%s' % code] = forms.CharField(label='Доп инф по адресу', + self.fields['address_inf_%s' % code] = forms.CharField(label=_(u'Доп инф по адресу'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -215,7 +216,7 @@ class OrganiserForm(forms.Form): if phone.isdigit(): return phone else: - raise ValidationError('Введите правильный телефон') + raise ValidationError(_(u'Введите правильный телефон')) def clean_fax(self): """ @@ -234,8 +235,8 @@ class OrganiserForm(forms.Form): if fax.isdigit(): return fax else: - raise ValidationError('Введите правильный факс') + raise ValidationError(_(u'Введите правильный факс')) class OrganiserFilterForm(AdminFilterForm): - model = Organiser \ No newline at end of file + model = Organiser diff --git a/organiser/models.py b/organiser/models.py index ea4f748f..f4cc4ee6 100644 --- a/organiser/models.py +++ b/organiser/models.py @@ -34,39 +34,39 @@ class Organiser(TranslatableModel): url = models.SlugField(verbose_name='URL', blank=True, max_length=255) #relations - country = models.ForeignKey('country.Country', verbose_name='Страна', blank=True, null=True, + country = models.ForeignKey('country.Country', verbose_name=_(u'Страна'), blank=True, null=True, on_delete=models.PROTECT) - city = models.ForeignKey('city.City', verbose_name='Город', blank=True, null=True, + city = models.ForeignKey('city.City', verbose_name=_(u'Город'), blank=True, null=True, on_delete=models.PROTECT,) - theme = models.ManyToManyField('theme.Theme', verbose_name='Отрасль', blank=True, null=True) - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', blank=True, null=True) + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Отрасль'), blank=True, null=True) + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True) #address. uses LocationField. saves data in json format - address = LocationField(verbose_name='Адресс', blank=True, null=True) - logo = models.ImageField(verbose_name='Logo', upload_to=logo_name, blank=True) + address = LocationField(verbose_name=_(u'Адресс'), blank=True, null=True) + logo = models.ImageField(verbose_name=_(u'Logo'), upload_to=logo_name, blank=True) rating = models.IntegerField(default=0) - phone = models.BigIntegerField(verbose_name='Телефон', blank=True, null=True) - fax = models.BigIntegerField(verbose_name='Факс', blank=True, null=True) - web_page = models.CharField(verbose_name='Веб-сайт',max_length=255, blank=True) - email = models.EmailField(verbose_name='Email', blank=True) + phone = models.BigIntegerField(verbose_name=_(u'Телефон'), blank=True, null=True) + fax = models.BigIntegerField(verbose_name=_(u'Факс'), blank=True, null=True) + web_page = models.CharField(verbose_name=_(u'Веб-сайт'),max_length=255, blank=True) + email = models.EmailField(verbose_name=_(u'Email'), blank=True) facebook = models.URLField(verbose_name=_(u'Facebook'), blank=True) twitter = models.URLField(verbose_name=_(u'Twitter'), blank=True) linkedin = models.URLField(verbose_name=_(u'LinkedIn'), blank=True) vk = models.URLField(verbose_name=_(u'В контакте'), blank=True) - foundation = models.PositiveIntegerField(verbose_name='Год основания', blank=True, null=True) - events_number = models.PositiveIntegerField(verbose_name='Количество мероприятий', blank=True, null=True) - staff_number = models.PositiveIntegerField(verbose_name='Количество сотрудников', blank=True, null=True) + foundation = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True) + events_number = models.PositiveIntegerField(verbose_name=_(u'Количество мероприятий'), blank=True, null=True) + staff_number = models.PositiveIntegerField(verbose_name=_(u'Количество сотрудников'), blank=True, null=True) place_exposition = models.ManyToManyField('place_exposition.PlaceExposition', blank=True, null=True, related_name='organiser_place_exposition') place_conference = models.ManyToManyField('place_conference.PlaceConference', blank=True, null=True, related_name='organiser_place_conference') #translation fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название', max_length=255, blank=True), - specialization = models.CharField(verbose_name='Специализация', max_length=255, blank=True), - description = models.TextField(verbose_name='Описание', blank=True), - representation = models.TextField(verbose_name='Представительства', blank=True), - address_inf = models.TextField(verbose_name='Доп инф по адресу', blank=True), + name = models.CharField(verbose_name=_(u'Название'), max_length=255, blank=True), + specialization = models.CharField(verbose_name=_(u'Специализация'), max_length=255, blank=True), + description = models.TextField(verbose_name=_(u'Описание'), blank=True), + representation = models.TextField(verbose_name=_(u'Представительства'), blank=True), + address_inf = models.TextField(verbose_name=_(u'Доп инф по адресу'), blank=True), #-----meta title = models.CharField(max_length=255, blank=True), descriptions = models.CharField(max_length=255, blank=True), @@ -81,4 +81,4 @@ class Organiser(TranslatableModel): return self.lazy_translation_getter('name', self.pk) -post_save.connect(post_save_handler, sender=Organiser) \ No newline at end of file +post_save.connect(post_save_handler, sender=Organiser) diff --git a/password_reset/templates/password_reset/recovery_email_expo.html b/password_reset/templates/password_reset/recovery_email_expo.html index cfcca57d..f4698e85 100644 --- a/password_reset/templates/password_reset/recovery_email_expo.html +++ b/password_reset/templates/password_reset/recovery_email_expo.html @@ -1,3 +1,4 @@ +{% load i18n %} @@ -16,15 +17,15 @@
- - + + @@ -23,8 +24,8 @@ - - + + {% endfor %} @@ -34,5 +35,5 @@ {# pagination #} {% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} -Назад к управлению баннерами -{% endblock %} \ No newline at end of file +{% trans "Назад к управлению баннерами" %} +{% endblock %} diff --git a/templates/admin/includes/admin_nav.html b/templates/admin/includes/admin_nav.html index 93fa7992..12e39b8a 100644 --- a/templates/admin/includes/admin_nav.html +++ b/templates/admin/includes/admin_nav.html @@ -49,6 +49,7 @@
  • Управление услугами
  • Главная страница
  • Мета
  • +
  • Перевод
  • Импорт тематик
  • diff --git a/templates/client/404_test.html b/templates/client/404_test.html index bded0e78..d948197b 100644 --- a/templates/client/404_test.html +++ b/templates/client/404_test.html @@ -1,17 +1,18 @@ {% extends 'base_catalog.html' %} +{% load i18n %} {% block content_list %}
    -

    Запрашиваемая страница не найдена

    +

    {% trans "Запрашиваемая страница не найдена" %}

    404: -

    Возможно у нее изменился адрес или же она была удалена.
    Воспользуйтесь поиском по названию, расширенной формой поиска или каталогом событий.

    +

    {% trans "Возможно у нее изменился адрес или же она была удалена.
    Воспользуйтесь поиском по названию, расширенной формой поиска или каталогом событий." %}


    -

    Каталог выставок

    +

    {% trans "Каталог выставок" %}


    -

    Каталог конференций

    +

    {% trans "Каталог конференций" %}

    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/accounts/translators/translator_city.html b/templates/client/accounts/translators/translator_city.html index 78396929..c40db629 100644 --- a/templates/client/accounts/translators/translator_city.html +++ b/templates/client/accounts/translators/translator_city.html @@ -31,7 +31,7 @@
    -

    Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании.

    +

    {% trans "Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании." %}

    diff --git a/templates/client/accounts/translators/translator_country.html b/templates/client/accounts/translators/translator_country.html index a7f72a4d..90f10426 100644 --- a/templates/client/accounts/translators/translator_country.html +++ b/templates/client/accounts/translators/translator_country.html @@ -28,8 +28,8 @@
    -

    Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании.

    -

    Ниже приведен список наиболее часто востребованных территориальных направлений для оказания услуг перевода в Великобритании. Приведенный перечень не является исчерпывающим, поэтому, если Вы не нашли нужный Вам город, обратитесь к нашим консультантам.

    +

    {% trans "Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании." %}

    +

    {% trans "Ниже приведен список наиболее часто востребованных территориальных направлений для оказания услуг перевода в Великобритании. Приведенный перечень не является исчерпывающим, поэтому, если Вы не нашли нужный Вам город, обратитесь к нашим консультантам." %}


    {% if object.latitude and object.longitude %} @@ -134,4 +134,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/accounts/translators/translator_profile.html b/templates/client/accounts/translators/translator_profile.html index 0c714b5f..4ae2ba02 100644 --- a/templates/client/accounts/translators/translator_profile.html +++ b/templates/client/accounts/translators/translator_profile.html @@ -35,7 +35,7 @@

    {{ object.get_full_name }}

    {{ object.translator.languages }}

    -

    {% ifequal object.translator.gender 'female' %}{% endifequal %}{{ object.translator.birth|how_many_years }} лет{% if object.translator.car %}Есть личный автомобиль

    {% endif %} +

    {% ifequal object.translator.gender 'female' %}{% endifequal %}{{ object.translator.birth|how_many_years }} лет{% if object.translator.car %}{% trans "Есть личный автомобиль" %}

    {% endif %}
    {% if object.profile.country %} @@ -56,4 +56,4 @@ {% endif %}
    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/article/article.html b/templates/client/article/article.html index 9b6050e9..516d0943 100644 --- a/templates/client/article/article.html +++ b/templates/client/article/article.html @@ -54,7 +54,7 @@ {% include 'includes/show_logo.html' with obj=blog %}

    {{ blog.main_title }}

    {{ blog.preview }}

    - {{ blog.publish_date|date:"d E Y" }}Евгения Булавина + {{ blog.publish_date|date:"d E Y" }}{% trans "Евгения Булавина" %} {% endfor %} diff --git a/templates/client/city/city.html b/templates/client/city/city.html index 6f66f219..ca5797a7 100644 --- a/templates/client/city/city.html +++ b/templates/client/city/city.html @@ -91,7 +91,7 @@ {% if object.description %}
    -

    Описание

    +

    {% trans "Описание" %}

    {{ object.description }}
    @@ -100,7 +100,7 @@ {% if object.get_photos %}
    -

    Фотогалерея

    +

    {% trans "Фотогалерея" %}

    {{ user.rating }}
    -

    Заполните свой
    профиль, чтобы
    повысить рейтинг

    -

    Чем выше
    рейтинг —
    тем больше
    преимуществ!

    + {% blocktrans %}

    Заполните свой
    профиль, чтобы
    повысить рейтинг

    {% endblocktrans %} + {% blocktrans %}

    Чем выше
    рейтинг —
    тем больше
    преимуществ!

    {% endblocktrans %}
    {# END avatar #} @@ -488,4 +488,4 @@ } }); -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/includes/company/company_blocked.html b/templates/client/includes/company/company_blocked.html index 3683996a..51647a57 100644 --- a/templates/client/includes/company/company_blocked.html +++ b/templates/client/includes/company/company_blocked.html @@ -1,3 +1,4 @@ +{% load i18n %}
    diff --git a/templates/client/includes/company/company_edit.html b/templates/client/includes/company/company_edit.html index fe190731..9d7ea86c 100644 --- a/templates/client/includes/company/company_edit.html +++ b/templates/client/includes/company/company_edit.html @@ -117,11 +117,11 @@
    - +
    - закрыть + {% trans "закрыть" %}
    @@ -149,11 +149,11 @@
    - +
    - закрыть + {% trans "закрыть" %} @@ -428,7 +428,7 @@
    -
    Дополнительная информация
    +
    {% trans "Дополнительная информация" %}
    {% trans 'Добавить' %}{% trans 'Год основания' %}:
    @@ -532,7 +532,7 @@
    - Предварительный просмотр + {% trans "Предварительный просмотр" %} diff --git a/templates/client/includes/event_list.html b/templates/client/includes/event_list.html index 4420cf7f..f478270b 100644 --- a/templates/client/includes/event_list.html +++ b/templates/client/includes/event_list.html @@ -25,9 +25,9 @@
    {% if user.is_staff %} {% if obj.is_published %} -
    Активная
    +
    {% trans "Активная" %}
    {% else %} -
    Неактивная
    +
    {% trans "Неактивная" %}
    {% endif %} {% else %} @@ -108,4 +108,4 @@ {% endfor %} - \ No newline at end of file + diff --git a/templates/client/includes/exposition/expo_paid.html b/templates/client/includes/exposition/expo_paid.html index 845bde29..9715b7e8 100644 --- a/templates/client/includes/exposition/expo_paid.html +++ b/templates/client/includes/exposition/expo_paid.html @@ -258,7 +258,7 @@

    {% trans 'Участники' %}

    {% trans 'Привлекайте целевых посетителей на стенд' %}

    -

    Рекламировать участника

    +

    {% trans "Рекламировать участника" %}

    {% endif %} {% endwith %} diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index 29fae9d3..ba8f1947 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -290,7 +290,7 @@ {% if exposition.area %} {% else %} {% if exposition.members or exposition.visitors or exposition.foundation_year %} -

     Статистика

    +

     {% trans "Статистика" %}

    {% endif %} {% endif %} {% if exposition.members or exposition.visitors or exposition.foundation_year or exposition.area %} diff --git a/templates/client/includes/exposition/programm.html b/templates/client/includes/exposition/programm.html index c897b767..073ffd67 100644 --- a/templates/client/includes/exposition/programm.html +++ b/templates/client/includes/exposition/programm.html @@ -30,7 +30,7 @@
    {% if exposition.discount %} - Скидка -{{ exposition.discount }}% + {% trans "Скидка" %} -{{ exposition.discount }}%
    {{ exposition.discount_description|safe }}
    {% endif %}
    @@ -76,7 +76,7 @@ {% with days=exposition.get_timetables_days %} {% if days %}
    -

    Деловая программа

    +

    {% trans "Деловая программа" %}

    @@ -102,7 +102,7 @@
    {{ pr.name }}
    - {{ pr.programe|safe }}Организатор: {{ pr.speaker }} + {{ pr.programe|safe }}{% trans "Организатор" %}: {{ pr.speaker }}
    diff --git a/templates/client/newsletters/activation_complete.html b/templates/client/newsletters/activation_complete.html index 822d0d57..a3dfcd2b 100644 --- a/templates/client/newsletters/activation_complete.html +++ b/templates/client/newsletters/activation_complete.html @@ -13,17 +13,17 @@
    -

    Мы очень рады, что теперь каждую среду вместе с другими профессионалами бизнеса Вы будете получать анонсы из календаря событий Expomap. Важные выставки и конференции не останутся незамеченными!

    +

    {% trans "Мы очень рады, что теперь каждую среду вместе с другими профессионалами бизнеса Вы будете получать анонсы из календаря событий Expomap. Важные выставки и конференции не останутся незамеченными!" %}

    -

    Вы всегда можете изменить параметры своей подписки:

    +

    {% trans "Вы всегда можете изменить параметры своей подписки:" %}

      -
    • - добавить или изменить тематики;
    • -
    • - применить гео-фильтры (например, получать выставки только в г. Москва);
    • -
    • - изменить периодичность получения писем;
    • -
    • - отписаться! =(
    • +
    • {% trans "- добавить или изменить тематики;" %}
    • +
    • {% trans "- применить гео-фильтры (например, получать выставки только в г. Москва);" %}
    • +
    • {% trans "- изменить периодичность получения писем;" %}
    • +
    • {% trans "- отписаться! =(" %}
    -

    Мы будем рады любым Вашим пожелания по улучшению нашей рассылки - можете отправлять их на адрес evm@expomap.ru

    +

    {% trans "Мы будем рады любым Вашим пожелания по улучшению нашей рассылки - можете отправлять их на адрес evm@expomap.ru" %}

    diff --git a/templates/client/newsletters/activation_template.html b/templates/client/newsletters/activation_template.html index d19ff2e6..f70cce21 100644 --- a/templates/client/newsletters/activation_template.html +++ b/templates/client/newsletters/activation_template.html @@ -1,3 +1,4 @@ +{% load i18n %} @@ -16,15 +17,15 @@
    Чтобы отписаться от этой рассылки, перейдите по ссылке. + {% trans "Чтобы отписаться от этой рассылки, перейдите" %} {% trans "по ссылке" %}. © 2008 — 2015 Expomap.ru
      @@ -40,7 +41,7 @@ - + @@ -92,9 +93,9 @@ @@ -111,4 +112,4 @@

      Воостановление пароля на портале Expomap

      {% trans "Воостановление пароля на портале" %} Expomap

      @@ -49,27 +50,27 @@
      -

      Добрый день, {{ user.first_name }}!

      +

      {% trans "Добрый день" %}, {{ user.first_name }}!

      - Вы или кто-то еще сделал запрос на сброс пароля на сайте {{ domain }} + {% trans "Вы или кто-то еще сделал запрос на сброс пароля на сайте" %} {{ domain }}
      - Вы можете восстановить доступ, нажав на кнопку ниже и указав новый пароль: + {% trans "Вы можете восстановить доступ, нажав на кнопку ниже и указав новый пароль:" %}
      - востановить пароль + {% trans "востановить пароль" %}
      - Если вы не хотите сбрасывать пароль, просто проигнорируйте это сообщение + {% blocktrans %}Если вы не хотите сбрасывать пароль, просто проигнорируйте это сообщение{% endblocktrans %}
      - \ No newline at end of file + diff --git a/photologue/forms.py b/photologue/forms.py index 79bf4e7b..ce94d29e 100644 --- a/photologue/forms.py +++ b/photologue/forms.py @@ -3,6 +3,7 @@ from django import forms from django.conf import settings from functions.translate import fill_with_signal from models import Gallery, Photo +from django.utils.translation import ugettext as _ class GalleryForm(forms.Form): @@ -18,8 +19,8 @@ class GalleryForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['title_%s' % code] = forms.CharField(label='Заголовок', required=required) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=False) + self.fields['title_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False) def save(self, obj=None): data = self.cleaned_data @@ -34,8 +35,8 @@ class GalleryForm(forms.Form): class PhotoForm(forms.Form): - image = forms.ImageField(label=u'Изображение', required=False) - sort = forms.IntegerField(label=u'Позиция', initial=10, required=False) + image = forms.ImageField(label=_(u'Изображение'), required=False) + sort = forms.IntegerField(label=_(u'Позиция'), initial=10, required=False) def __init__(self, *args, **kwargs): """ @@ -49,8 +50,8 @@ class PhotoForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['title_%s' % code] = forms.CharField(label='Описание', required=False) - self.fields['caption_%s' % code] = forms.CharField(label='Заголовок', required=required) + self.fields['title_%s' % code] = forms.CharField(label=_(u'Описание'), required=False) + self.fields['caption_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required) def save(self, obj=None): data = self.cleaned_data @@ -72,4 +73,4 @@ class PhotoForm(forms.Form): class GalleryPhotoForm(PhotoForm): def save(self, obj=None, gallery=None): photo = super(GalleryPhotoForm, self).save(obj) - gallery.add(photo) \ No newline at end of file + gallery.add(photo) diff --git a/photologue/migrations/0002_photosize_data.py b/photologue/migrations/0002_photosize_data.py index 7d98c44a..c7e06aea 100644 --- a/photologue/migrations/0002_photosize_data.py +++ b/photologue/migrations/0002_photosize_data.py @@ -1,4 +1,4 @@ -# encoding: utf8 +# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/photoreport/forms.py b/photoreport/forms.py index 5ddbd224..880b9cc2 100644 --- a/photoreport/forms.py +++ b/photoreport/forms.py @@ -9,6 +9,7 @@ from models import Photoreport from functions.form_check import translit_with_separator from functions.translate import fill_with_signal from functions.files import check_tmp_files +from django.utils.translation import ugettext as _ class PhotoreportForm(forms.Form): @@ -31,16 +32,16 @@ class PhotoreportForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['description_%s' % code] = forms.CharField(label='Описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self, id=None): diff --git a/place_conference/forms.py b/place_conference/forms.py index f2e38aa5..91a03d53 100644 --- a/place_conference/forms.py +++ b/place_conference/forms.py @@ -15,7 +15,7 @@ from functions.files import check_tmp_files from functions.form_check import is_positive_integer, translit_with_separator from functions.custom_fields import LocationWidget from functions.admin_forms import AdminFilterForm - +from django.utils.translation import ugettext as _ class ConferenceForm(forms.Form): @@ -27,45 +27,45 @@ class ConferenceForm(forms.Form): save function saves data in PlaceConference object. If it doesnt exist create new object """ types = [(item1, item2) for item1, item2 in CONFERENCE_TYPE] - type = forms.ChoiceField(label='Краткое описание', required=False, choices=types) - logo = forms.ImageField(label='Logo', required=False, max_length=500) - country = forms.ModelChoiceField(label='Страна', queryset=Country.objects.all(), empty_label=None) + type = forms.ChoiceField(label=_(u'Краткое описание'), required=False, choices=types) + logo = forms.ImageField(label=_(u'Logo'), required=False, max_length=500) + country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), empty_label=None) #creates select input with empty choices cause it will be filled with ajax - city = forms.CharField(label='Город', widget=forms.HiddenInput()) - - address = forms.CharField(label='Адресс', widget=LocationWidget, required=False) - foundation_year = forms.CharField(label='Год основания', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Год основания'})) - phone = forms.CharField(label='Телефон', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите телефон'})) - fax = forms.CharField(label='Факс', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите факс'})) - web_page = forms.CharField(label='Веб-сайт', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите адрес сайта'})) - email = forms.CharField(label='Email', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите email'})) - total_capacity = forms.CharField(label='Общая вместимость', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Общая вместимость'})) - amount_halls = forms.CharField(label='Количество залов', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Количество залов'})) - video_link = forms.CharField(label='Видео', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите ссылку на видео'})) + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) + + address = forms.CharField(label=_(u'Адресс'), widget=LocationWidget, required=False) + foundation_year = forms.CharField(label=_(u'Год основания'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Год основания')})) + phone = forms.CharField(label=_(u'Телефон'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите телефон')})) + fax = forms.CharField(label=_(u'Факс'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите факс')})) + web_page = forms.CharField(label=_(u'Веб-сайт'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите адрес сайта')})) + email = forms.CharField(label=_(u'Email'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите email')})) + total_capacity = forms.CharField(label=_(u'Общая вместимость'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Общая вместимость')})) + amount_halls = forms.CharField(label=_(u'Количество залов'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Количество залов')})) + video_link = forms.CharField(label=_(u'Видео'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите ссылку на видео')})) #halls information - hall_name = forms.CharField(label='Название зала', required=False) - hall_number = forms.IntegerField(label='Номер зала', min_value=1, initial='1', required=False) - hall_capacity = forms.IntegerField(label='Вместимость зала', min_value='1', required=False) + hall_name = forms.CharField(label=_(u'Название зала'), required=False) + hall_number = forms.IntegerField(label=_(u'Номер зала'), min_value=1, initial='1', required=False) + hall_capacity = forms.IntegerField(label=_(u'Вместимость зала'), min_value='1', required=False) # - exposition_hall = forms.BooleanField(label='Выставочный зал', required=False)#14 - exp_hall_area = forms.CharField(label='Площадь выст. зала', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Площадь выст. зала'}))#15 + exposition_hall = forms.BooleanField(label=_(u'Выставочный зал'), required=False)#14 + exp_hall_area = forms.CharField(label=_(u'Площадь выст. зала'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Площадь выст. зала')}))#15 # wifi = forms.BooleanField(label='Wi-fi', required=False) - multimedia_equipment = forms.BooleanField(label='Мультимедийное оборудование', required=False) - conference_call = forms.BooleanField(label='Конференц-связь', required=False) - translate_equipment = forms.BooleanField(label='Оборудование для синхронного перевода', required=False) - banquet_hall = forms.BooleanField(label='Банкетный зал', required=False) - catering = forms.BooleanField(label='Кейтеринг', required=False) - hotel = forms.BooleanField(label='Гостиница', required=False) + multimedia_equipment = forms.BooleanField(label=_(u'Мультимедийное оборудование'), required=False) + conference_call = forms.BooleanField(label=_(u'Конференц-связь'), required=False) + translate_equipment = forms.BooleanField(label=_(u'Оборудование для синхронного перевода'), required=False) + banquet_hall = forms.BooleanField(label=_(u'Банкетный зал'), required=False) + catering = forms.BooleanField(label=_(u'Кейтеринг'), required=False) + hotel = forms.BooleanField(label=_(u'Гостиница'), required=False) # key = forms.CharField(required=False, widget=forms.HiddenInput()) # @@ -83,20 +83,20 @@ class ConferenceForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) # - self.fields['main_title_%s' % code] = forms.CharField(label='Краткое описание', required=False, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Полное описание', required=False, widget=CKEditorWidget) - self.fields['adress_%s' % code] = forms.CharField(label='Дополнительная инф по адресу', required=False, max_length=255, + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) # + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Краткое описание'), required=False, widget=CKEditorWidget) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Полное описание'), required=False, widget=CKEditorWidget) + self.fields['adress_%s' % code] = forms.CharField(label=_(u'Дополнительная инф по адресу'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['total_year_action_%s' % code] = forms.CharField(label='Количество мероприятий в год', required=False, widget=CKEditorWidget) + self.fields['total_year_action_%s' % code] = forms.CharField(label=_(u'Количество мероприятий в год'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['hall_capacity_%s' % code] = forms.CharField(label='Шаблон вместимости', + self.fields['hall_capacity_%s' % code] = forms.CharField(label=_(u'Шаблон вместимости'), widget=forms.TextInput(attrs={'style':'width: 550px'}), required=False) """ try: @@ -226,7 +226,7 @@ class ConferenceForm(forms.Form): if phone.isdigit(): return phone else: - raise ValidationError('Введите правильный телефон') + raise ValidationError(_(u'Введите правильный телефон')) def clean_fax(self): """ @@ -245,7 +245,7 @@ class ConferenceForm(forms.Form): if fax.isdigit(): return fax else: - raise ValidationError('Введите правильный факс') + raise ValidationError(_(u'Введите правильный факс')) def clean_total_capacity(self): """ @@ -325,4 +325,4 @@ class PlaceConferenceFilterForm(AdminFilterForm): if country: qs = qs.filter(country_id__in=country) - return qs \ No newline at end of file + return qs diff --git a/place_exposition/forms.py b/place_exposition/forms.py index c9b6cd6e..da4eb7e3 100644 --- a/place_exposition/forms.py +++ b/place_exposition/forms.py @@ -15,6 +15,7 @@ from functions.files import check_tmp_files from functions.form_check import is_positive_integer, translit_with_separator from functions.custom_fields import LocationWidget from functions.admin_forms import AdminFilterForm +from django.utils.translation import ugettext as _ class ExpositionForm(forms.Form): @@ -27,48 +28,48 @@ class ExpositionForm(forms.Form): """ types = [(item1, item2) for item1, item2 in EXPOSITION_TYPE] type = forms.ChoiceField(required=False, choices=types) - logo = forms.ImageField(label='Logo', required=False, max_length=500) + logo = forms.ImageField(label=_(u'Logo'), required=False, max_length=500) - country = forms.ChoiceField(label='Страна', choices=[(c.id, c.name) for c in Country.objects.all()]) + country = forms.ChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()]) # creates select input with empty choices cause it will be filled with ajax - city = forms.CharField(label='Город', widget=forms.HiddenInput()) - - address = forms.CharField(label='Адрес', widget=LocationWidget, required=False) - - phone = forms.CharField(label='Телефон', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите телефон'})) - fax = forms.CharField(label='Факс', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите факс'})) - web_page = forms.URLField(label='Веб-сайт', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите адрес сайта'}))# - email = forms.EmailField(label='Email', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Введите email'}))# + city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput()) + + address = forms.CharField(label=_(u'Адрес'), widget=LocationWidget, required=False) + + phone = forms.CharField(label=_(u'Телефон'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите телефон')})) + fax = forms.CharField(label=_(u'Факс'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите факс')})) + web_page = forms.URLField(label=_(u'Веб-сайт'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите адрес сайта')}))# + email = forms.EmailField(label=_(u'Email'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Введите email')}))# # - foundation_year = forms.CharField(label='Год основания', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Год основания'})) + foundation_year = forms.CharField(label=_(u'Год основания'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Год основания')})) total_area = forms.CharField(label='Общая выставочная площадь', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Общая выст. площадь'})) - closed_area = forms.CharField(label='Закрытая выставочная площадь', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Закр. выст. площадь'})) - open_area = forms.CharField(label='Открытая выставочная площадь', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Откр. выст. площадь'})) - total_pavilions = forms.CharField(label='Количество павильонов', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Количество павильонов'})) - total_halls = forms.CharField(label='Количество конференц залов', required=False, - widget=forms.TextInput(attrs={'placeholder': 'Конференц залы'})) + widget=forms.TextInput(attrs={'placeholder': _(u'Общая выст. площадь')})) + closed_area = forms.CharField(label=_(u'Закрытая выставочная площадь'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Закр. выст. площадь')})) + open_area = forms.CharField(label=_(u'Открытая выставочная площадь'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Откр. выст. площадь')})) + total_pavilions = forms.CharField(label=_(u'Количество павильонов'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Количество павильонов')})) + total_halls = forms.CharField(label=_(u'Количество конференц залов'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Конференц залы')})) # wifi = forms.BooleanField(label='Wi-fi', required=False) - bank = forms.BooleanField(label='Банк/Банкоматы', required=False) - children_room = forms.BooleanField(label='Детская комната', required=False) - disabled_service = forms.BooleanField(label='Сервис для инвалидов', required=False) - conference_centre = forms.BooleanField(label='Конгресс-центр', required=False) - business_centre = forms.BooleanField(label='Бизнес-центр', required=False) - online_registration = forms.BooleanField(label='Онлайн регистрация', required=False) - cafe = forms.BooleanField(label='Кафе', required=False) - terminals = forms.BooleanField(label='Информационные терминалы', required=False) - parking = forms.BooleanField(label='Парковка', required=False) - press_centre = forms.BooleanField(label='Пресс-центр', required=False) - mobile_application = forms.BooleanField(label='Мобильное приложение', required=False) + bank = forms.BooleanField(label=_(u'Банк/Банкоматы'), required=False) + children_room = forms.BooleanField(label=_(u'Детская комната'), required=False) + disabled_service = forms.BooleanField(label=_(u'Сервис для инвалидов'), required=False) + conference_centre = forms.BooleanField(label=_(u'Конгресс-центр'), required=False) + business_centre = forms.BooleanField(label=_(u'Бизнес-центр'), required=False) + online_registration = forms.BooleanField(label=_(u'Онлайн регистрация'), required=False) + cafe = forms.BooleanField(label=_(u'Кафе'), required=False) + terminals = forms.BooleanField(label=_(u'Информационные терминалы'), required=False) + parking = forms.BooleanField(label=_(u'Парковка'), required=False) + press_centre = forms.BooleanField(label=_(u'Пресс-центр'), required=False) + mobile_application = forms.BooleanField(label=_(u'Мобильное приложение'), required=False) def __init__(self, *args, **kwargs): """ @@ -82,19 +83,19 @@ class ExpositionForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['main_title_%s' % code] = forms.CharField(label='Краткое описание', required=False, widget=CKEditorWidget)#5 - self.fields['description_%s' % code] = forms.CharField(label='Полное описание', required=False, widget=CKEditorWidget) - self.fields['adress_%s' % code] = forms.CharField(label='Дополнительная инф по адресу', required=False, max_length=255, + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Краткое описание'), required=False, widget=CKEditorWidget)#5 + self.fields['description_%s' % code] = forms.CharField(label=_(u'Полное описание'), required=False, widget=CKEditorWidget) + self.fields['adress_%s' % code] = forms.CharField(label=_(u'Дополнительная инф по адресу'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) # - self.fields['total_year_action_%s' % code] = forms.CharField(label='Количество мероприятий в год', required=False, widget=CKEditorWidget) + self.fields['total_year_action_%s' % code] = forms.CharField(label=_(u'Количество мероприятий в год'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -173,7 +174,7 @@ class ExpositionForm(forms.Form): if phone.isdigit(): return phone else: - raise ValidationError('Введите правильный телефон') + raise ValidationError(_(u'Введите правильный телефон')) def clean_fax(self): """ @@ -192,7 +193,7 @@ class ExpositionForm(forms.Form): if fax.isdigit(): return fax else: - raise ValidationError('Введите правильный факс') + raise ValidationError(_(u'Введите правильный факс')) @@ -256,9 +257,9 @@ class PlaceExpositionFormDelete(forms.ModelForm): class HallForm(forms.Form): url = '/admin/place_exposition/add-hall/' number = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:30px'}),required=False, - label='Номер') + label=_(u'Номер')) capacity = forms.CharField(widget=forms.TextInput(attrs={'style': 'width:60px'}), required=False, - label='Вместимость') + label=_(u'Вместимость')) def __init__(self, *args, **kwargs): """ create dynamical translated fields fields @@ -276,7 +277,7 @@ class HallForm(forms.Form): def clean_capacity(self): cleaned_data = super(HallForm, self).clean() capacity = cleaned_data.get('capacity').strip() - return is_positive_integer(capacity, 'Вместимость должна состоять из цифр') + return is_positive_integer(capacity, _(u'Вместимость должна состоять из цифр')) def save(self, place_exposition, id=None): if id: @@ -292,7 +293,6 @@ class HallForm(forms.Form): return hall - class PlaceExpositionFilter(AdminFilterForm): country = forms.MultipleChoiceField(choices=[(item.id, item.name) for item in list(Country.objects.all())], @@ -307,4 +307,4 @@ class PlaceExpositionFilter(AdminFilterForm): if country: qs = qs.filter(country_id__in=country) - return qs \ No newline at end of file + return qs diff --git a/place_exposition/models.py b/place_exposition/models.py index 33a3100d..83fb77ed 100644 --- a/place_exposition/models.py +++ b/place_exposition/models.py @@ -21,8 +21,8 @@ from exposition.models import Exposition from place_conference.models import PlaceConference from photologue.models import Gallery -EXPOSITION_TYPE = (('Exposition complex', u'Выставочный комплекс'), ('Convention centre', u'Конгрессно-выставочный центр'), - ('Exposition centre', u'Выставочный центр'),) +EXPOSITION_TYPE = (('Exposition complex', _(u'Выставочный комплекс')), ('Convention centre', _(u'Конгрессно-выставочный центр')), + ('Exposition centre', _(u'Выставочный центр')),) dist=lambda s,d: (s[0]-d[0])**2+(s[1]-d[1])**2 @@ -52,7 +52,7 @@ class PlaceExposition(TranslatableModel, ExpoMixin): #type uses EnumField for creating Enum type field in Mysql database type = EnumField(values = [item1 for item1, item2 in EXPOSITION_TYPE]) #information - address = LocationField(verbose_name='Адресс') + address = LocationField(verbose_name=_(u'Адресс')) phone = models.BigIntegerField(blank=True, null=True) fax = models.BigIntegerField(blank=True, null=True) web_page = models.URLField(blank=True) @@ -79,7 +79,7 @@ class PlaceExposition(TranslatableModel, ExpoMixin): press_centre = models.NullBooleanField() mobile_application = models.NullBooleanField() # - logo = models.ImageField(verbose_name='Logo', upload_to=logo_name, blank=True, max_length=255) + logo = models.ImageField(verbose_name=_(u'Logo'), upload_to=logo_name, blank=True, max_length=255) rating = models.IntegerField(default=0) partner = models.NullBooleanField(default=0) diff --git a/proj/admin_urls.py b/proj/admin_urls.py index 24252261..83cceb30 100644 --- a/proj/admin_urls.py +++ b/proj/admin_urls.py @@ -37,7 +37,7 @@ urlpatterns = required( url(r'^translator_catalog/', include('specialist_catalog.admin_urls')), url(r'^newsletters/', include('emencia.django.newsletter.admin_urls')), url(r'^stats/', include('stats_collector.admin_urls')), - # url(r'^rosetta/', include('rosetta.urls')), + url(r'^rosetta/', include('rosetta.urls')), url(r'^language/add/', 'directories.admin.language_add'), url(r'^currency/add/', 'directories.admin.currency_add'), diff --git a/proj/settings.py b/proj/settings.py index 9657e602..50f6a6e1 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -372,7 +372,7 @@ INSTALLED_APPS = ( 'social.apps.django_app.default', # social auth 'core', 'specialist_catalog', - # 'rosetta', + 'rosetta', # 'statsy', ) diff --git a/review/models.py b/review/models.py index fb11304e..5a6cad25 100644 --- a/review/models.py +++ b/review/models.py @@ -3,6 +3,7 @@ from django.db import models from hvad.models import TranslatableModel, TranslatedFields from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic +from django.utils.translation import ugettext as _ @@ -23,12 +24,12 @@ class Review(models.Model): user = models.ForeignKey('accounts.User', blank=True, null=True, on_delete=models.PROTECT, related_name='reviews') - comment = models.TextField(verbose_name='Отзыв') - rating = models.SmallIntegerField(verbose_name='Оценка', blank=True, null=True) + comment = models.TextField(verbose_name=_(u'Отзыв')) + rating = models.SmallIntegerField(verbose_name=_(u'Оценка'), blank=True, null=True) #field saves information about creating and changing model created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) def __unicode__(self): - return self.comment \ No newline at end of file + return self.comment diff --git a/seminar/forms.py b/seminar/forms.py index 0049e00f..953ee5cb 100644 --- a/seminar/forms.py +++ b/seminar/forms.py @@ -5,6 +5,7 @@ from ckeditor.widgets import CKEditorWidget from django.core.exceptions import ValidationError from django.forms.util import ErrorList from django.core.validators import validate_email, URLValidator +from django.utils.translation import ugettext as _ #models from models import Seminar, CURRENCY, Statistic from country.models import Country @@ -33,33 +34,33 @@ class SeminarCreateForm(forms.Form): """ currencies = [(item, item) for item in CURRENCY] - data_begin = forms.DateTimeField(label='Дата и время начала') - data_end = forms.DateTimeField(label='Дата и время оконочания') + data_begin = forms.DateTimeField(label=_(u'Дата и время начала')) + data_end = forms.DateTimeField(label=_(u'Дата и время оконочания')) - country = forms.ModelChoiceField(label='Страна', queryset=Country.objects.all(), empty_label=None) - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all()) + country = forms.ModelChoiceField(label=_(u'Страна'), queryset=Country.objects.all(), empty_label=None) + theme = forms.ModelMultipleChoiceField(label=_(u'Тематики'), queryset=Theme.objects.all()) #creates select input with empty choices cause it will be filled with ajax - city = forms.ChoiceField(label='Город', choices=[('','')]) - tag = forms.MultipleChoiceField(label='Теги', required=False) - - address = forms.CharField(label='Адрес', required=False, widget=LocationWidget)#google maps api - web_page = forms.CharField(label='Веб страница', required=False) - link = forms.CharField(label='Линк на регистрацию', required=False) - foundation_year = forms.CharField(label='Год основания', required=False) - members = forms.CharField(label='Посетители', required=False) - visitors = forms.CharField(label='Участники', required=False) - discount = forms.CharField(label='Cкидка(%)', required=False) - quality_label = forms.MultipleChoiceField(label='Метки', required=False, + city = forms.ChoiceField(label=_(u'Город'), choices=[('','')]) + tag = forms.MultipleChoiceField(label=_(u'Теги'), required=False) + + address = forms.CharField(label=_(u'Адрес'), required=False, widget=LocationWidget)#google maps api + web_page = forms.CharField(label=_(u'Веб страница'), required=False) + link = forms.CharField(label=_(u'Линк на регистрацию'), required=False) + foundation_year = forms.CharField(label=_(u'Год основания'), required=False) + members = forms.CharField(label=_(u'Посетители'), required=False) + visitors = forms.CharField(label=_(u'Участники'), required=False) + discount = forms.CharField(label=_(u'Cкидка(%)'), required=False) + quality_label = forms.MultipleChoiceField(label=_(u'Метки'), required=False, choices=[('ufi', 'UFI'), ('rsva', 'РСВЯ'), ('exporating', 'ExpoRating')], widget=forms.CheckboxSelectMultiple()) # - currency = forms.ChoiceField(label='Валюта', choices=currencies, required=False) - tax = forms.BooleanField(label='Налог включен', initial=True, required=False) - min_price = forms.CharField(label='Минимальная цена', required=False) - max_price = forms.CharField(label='Максимальная цена', required=False) - expohit = forms.BooleanField(label='Expohit', required=False) - canceled = forms.BooleanField(label='Отменена', required=False) - moved = forms.BooleanField(label='Перенесена', required=False) + currency = forms.ChoiceField(label=_(u'Валюта'), choices=currencies, required=False) + tax = forms.BooleanField(label=_(u'Налог включен'), initial=True, required=False) + min_price = forms.CharField(label=_(u'Минимальная цена'), required=False) + max_price = forms.CharField(label=_(u'Максимальная цена'), required=False) + expohit = forms.BooleanField(label=_(u'Expohit'), required=False) + canceled = forms.BooleanField(label=_(u'Отменена'), required=False) + moved = forms.BooleanField(label=_(u'Перенесена'), required=False) #field for comparing tmp files key = forms.CharField(required=False, widget=forms.HiddenInput()) # @@ -78,19 +79,19 @@ class SeminarCreateForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['main_title_%s' % code] = forms.CharField(label='Краткое описание', + self.fields['name_%s' % code] = forms.CharField(label=_(u'Название'), required=required) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Краткое описание'), required=False, widget=CKEditorWidget) - self.fields['programm_%s' % code] = forms.CharField(label='Описание', + self.fields['programm_%s' % code] = forms.CharField(label=_(u'Описание'), required=False, widget=CKEditorWidget) - self.fields['discount_description_%s' % code] = forms.CharField(label='Условия и скидки', + self.fields['discount_description_%s' % code] = forms.CharField(label=_(u'Условия и скидки'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Дескрипшен'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Кейвордс', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Кейвордс'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) #creates select inputs ind fill it #!service has bitfield. uncomment when country data will be filled @@ -168,7 +169,7 @@ class SeminarCreateForm(forms.Form): seminar = Seminar.objects.filter(url=translit_with_separator(name_ru)) if seminar and str(seminar[0].id) != id: - msg = 'Семинар с таким названием уже существует' + msg = _(u'Семинар с таким названием уже существует') self._errors['name_ru'] = ErrorList([msg]) del self.cleaned_data['name_ru'] @@ -261,9 +262,9 @@ class SeminarChangeForm(SeminarCreateForm): add some fields to SeminarCreateForm """ - organiser = forms.ModelMultipleChoiceField(label='Организаторы', queryset=Organiser.objects.all(), required=False) - company = forms.ModelMultipleChoiceField(label='Компании', queryset=Company.objects.all(), required=False) - users = forms.ModelMultipleChoiceField(label='Пользователи', queryset=User.objects.all(), required=False) + organiser = forms.ModelMultipleChoiceField(label=_(u'Организаторы'), queryset=Organiser.objects.all(), required=False) + company = forms.ModelMultipleChoiceField(label=_(u'Компании'), queryset=Company.objects.all(), required=False) + users = forms.ModelMultipleChoiceField(label=_(u'Пользователи'), queryset=User.objects.all(), required=False) class SeminarDeleteForm(forms.ModelForm): @@ -298,4 +299,4 @@ class StatisticForm(forms.ModelForm): class SeminarFilterForm(AdminFilterForm): - model = Seminar \ No newline at end of file + model = Seminar diff --git a/seminar/models.py b/seminar/models.py index 14ba3096..3316aadd 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -6,6 +6,7 @@ import copy from bitfield import BitField from service.models import Service from functions.db import db_table_exists +from django.utils.translation import ugettext as _ # from functions.custom_fields import EnumField @@ -33,34 +34,34 @@ class Seminar(TranslatableModel, EventMixin, ExpoMixin): services = BitField(flags=flags) url = models.SlugField(unique=True) - data_begin = models.DateTimeField(verbose_name='Дата начала') - data_end = models.DateTimeField(verbose_name='Дата окончания') + data_begin = models.DateTimeField(verbose_name=_(u'Дата начала')) + data_end = models.DateTimeField(verbose_name=_(u'Дата окончания')) #relations - country = models.ForeignKey('country.Country', verbose_name='Страна', on_delete=models.PROTECT) - city = models.ForeignKey('city.City', verbose_name='Город', on_delete=models.PROTECT) + country = models.ForeignKey('country.Country', verbose_name=_(u'Страна'), on_delete=models.PROTECT) + city = models.ForeignKey('city.City', verbose_name=_(u'Город'), on_delete=models.PROTECT) address = LocationField(verbose_name='Адрес', blank=True) - theme = models.ManyToManyField('theme.Theme', verbose_name='Тематики', + theme = models.ManyToManyField('theme.Theme', verbose_name=_(u'Тематики'), related_name='seminar_themes') - tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', + tag = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True, related_name='seminar_tags') - organiser = models.ManyToManyField('organiser.Organiser', verbose_name='Организатор', + organiser = models.ManyToManyField('organiser.Organiser', verbose_name=_(u'Организатор'), blank=True, null=True, related_name='seminar_organisers') - company = models.ManyToManyField('company.Company', verbose_name='Компании', + company = models.ManyToManyField('company.Company', verbose_name=_(u'Компании'), blank=True, null=True, related_name='seminar_companies') - users = models.ManyToManyField('accounts.User', verbose_name='Посетители выставки', + users = models.ManyToManyField('accounts.User', verbose_name=_(u'Посетители выставки'), blank=True, null=True, related_name='seminar_users') #!service has bitfield uncomment when country data will be filled #service = models.ManyToManyField('service.Service', verbose_name='Услуги', blank=True, null=True) #periodic = models.FloatField(verbose_name='Переодичность', blank=True, null=True) в семинаре под вопросом здесь - web_page = models.CharField(verbose_name='Вебсайт', max_length=255, blank=True) - link = models.CharField(verbose_name='Линк на регистрацию', max_length=255, blank=True) - discount = models.PositiveIntegerField(verbose_name='Скидка', blank=True, null=True) + web_page = models.CharField(verbose_name=_(u'Вебсайт'), max_length=255, blank=True) + link = models.CharField(verbose_name=_(u'Линк на регистрацию'), max_length=255, blank=True) + discount = models.PositiveIntegerField(verbose_name=_(u'Скидка'), blank=True, null=True) # currency = EnumField(values=CURRENCY, default='RUB') - tax = models.BooleanField(verbose_name='Налог', default=1) - min_price = models.PositiveIntegerField(verbose_name='Минимальная цена', blank=True, null=True) - max_price = models.PositiveIntegerField(verbose_name='Максимальная цена', blank=True, null=True) + tax = models.BooleanField(verbose_name=_(u'Налог'), default=1) + min_price = models.PositiveIntegerField(verbose_name=_(u'Минимальная цена'), blank=True, null=True) + max_price = models.PositiveIntegerField(verbose_name=_(u'Максимальная цена'), blank=True, null=True) expohit = models.BooleanField(verbose_name='Expohit', default=0) #administrator can cancel seminar @@ -74,15 +75,15 @@ class Seminar(TranslatableModel, EventMixin, ExpoMixin): files = generic.GenericRelation('file.FileModel', content_type_field='content_type', object_id_field='object_id') # statistic - foundation_year = models.PositiveIntegerField(verbose_name='Год основания', blank=True, null=True) - visitors = models.PositiveIntegerField(verbose_name='Посетитеил', blank=True, null=True) - members = models.PositiveIntegerField(verbose_name='Участники', blank=True, null=True) + foundation_year = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True) + visitors = models.PositiveIntegerField(verbose_name=_(u'Посетитеил'), blank=True, null=True) + members = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True) #translated fields translations = TranslatedFields( - name = models.CharField(verbose_name='Название', max_length=255), - main_title = models.TextField(verbose_name='Краткое описание', blank=True), - programm = models.TextField(verbose_name='Описание', blank=True), - discount_description = models.TextField(verbose_name='Условия и Скидки', blank=True), + name = models.CharField(verbose_name=_(u'Название'), max_length=255), + main_title = models.TextField(verbose_name=_(u'Краткое описание'), blank=True), + programm = models.TextField(verbose_name=_(u'Описание'), blank=True), + discount_description = models.TextField(verbose_name=_(u'Условия и Скидки'), blank=True), #-----meta data title = models.CharField(max_length=250), descriptions = models.CharField(max_length=250), @@ -157,9 +158,9 @@ class Seminar(TranslatableModel, EventMixin, ExpoMixin): class Statistic(models.Model): seminar = models.ForeignKey(Seminar, related_name='statistic') - year = models.PositiveIntegerField(verbose_name='Год') - members = models.PositiveIntegerField(verbose_name='Посетители') - visitors = models.PositiveIntegerField(verbose_name='Участники') + year = models.PositiveIntegerField(verbose_name=_(u'Год')) + members = models.PositiveIntegerField(verbose_name=_(u'Посетители')) + visitors = models.PositiveIntegerField(verbose_name=_(u'Участники')) # -*- coding: utf-8 -*- diff --git a/service/forms.py b/service/forms.py index a6c6192c..7c2c95be 100644 --- a/service/forms.py +++ b/service/forms.py @@ -5,6 +5,7 @@ from django.conf import settings from django.forms.util import ErrorList from ckeditor.widgets import CKEditorWidget from functions.translate import fill_with_signal +from django.utils.translation import ugettext as _ #models from models import Service from country.models import Country, City @@ -26,8 +27,8 @@ class ServiceForm(forms.Form): # city = forms.MultipleChoiceField(required=False, choices="") url = forms.CharField(label='url', required=False) - price = forms.IntegerField(label='Цена', required=False, - widget=forms.TextInput(attrs={'placeholder':'Валюта'})) + price = forms.IntegerField(label=_(u'Цена'), required=False, + widget=forms.TextInput(attrs={'placeholder': _(u'Валюта')})) #price = forms.CharField(label='Цена', required=False, # widget=forms.TextInput(attrs={'placeholder':'Валюта'})) @@ -46,16 +47,16 @@ class ServiceForm(forms.Form): # using enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False - self.fields['name_%s' % code] = forms.CharField(label='Названия', required=required) - self.fields['main_title_%s' % code] = forms.CharField(label='Заголовок', required=required, widget=CKEditorWidget) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=required, widget=CKEditorWidget) - self.fields['advantage_%s' % code] = forms.CharField(label='Преимущества', required=False, widget=CKEditorWidget) + self.fields['name_%s' % code] = forms.CharField(label=_(u'Названия'), required=required) + self.fields['main_title_%s' % code] = forms.CharField(label=_(u'Заголовок'), required=required, widget=CKEditorWidget) + self.fields['description_%s' % code] = forms.CharField(label=_(u'Описание'), required=required, widget=CKEditorWidget) + self.fields['advantage_%s' % code] = forms.CharField(label=_(u'Преимущества'), required=False, widget=CKEditorWidget) #meta data - self.fields['title_%s' % code] = forms.CharField(label='Тайтл', required=False, max_length=255, + self.fields['title_%s' % code] = forms.CharField(label=_(u'Тайтл'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['keywords_%s' % code] = forms.CharField(label='Description', required=False, max_length=255, + self.fields['keywords_%s' % code] = forms.CharField(label=_(u'Description'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - self.fields['descriptions_%s' % code] = forms.CharField(label='Keywords', required=False, max_length=255, + self.fields['descriptions_%s' % code] = forms.CharField(label=_(u'Keywords'), required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) @@ -76,7 +77,7 @@ class ServiceForm(forms.Form): service.price = data['price'] service.currency = data['currency'] #data['type'] - + fill_with_signal(Service, service, data) @@ -110,7 +111,7 @@ class ServiceForm(forms.Form): service = Service.objects.filter(url=translit_with_separator(url)) if service and str(service[0].id) != id: - msg = 'Такой урл уже занят' + msg = _(u'Такой урл уже занят') self._errors['url'] = ErrorList([msg]) del self.cleaned_data['url'] @@ -134,16 +135,16 @@ from django.db.models.query import EmptyQuerySet class LinkedServiceForm(forms.ModelForm): - type = forms.MultipleChoiceField(label='Тип', choices = [(x, x) for x in list(Service.type)], widget = forms.CheckboxSelectMultiple, required=False) - expositions = forms.CharField(label='Выставки', widget=forms.HiddenInput,required=False) - conferences = forms.CharField(label='Конференции', widget=forms.HiddenInput, required=False) - countries = forms.MultipleChoiceField(label='Страны', choices=[(c.id, c.name) for c in list(set(Country.objects.language()))]) + type = forms.MultipleChoiceField(label=_(u'Тип'), choices = [(x, x) for x in list(Service.type)], widget = forms.CheckboxSelectMultiple, required=False) + expositions = forms.CharField(label=_(u'Выставки'), widget=forms.HiddenInput,required=False) + conferences = forms.CharField(label=_(u'Конференции'), widget=forms.HiddenInput, required=False) + countries = forms.MultipleChoiceField(label=_(u'Страны'), choices=[(c.id, c.name) for c in list(set(Country.objects.language()))]) class Meta: model = LinkedService fields = ['countries', 'exclude_countries', 'expositions', 'conferences'] help_text = { - 'exclude_countries': u'При отсутствии стран этот флаг значит ВСЕ страны!' + 'exclude_countries': _(u'При отсутствии стран этот флаг значит ВСЕ страны!') } def clean_countries(self): diff --git a/service/models.py b/service/models.py index c0282ef3..9c927b31 100644 --- a/service/models.py +++ b/service/models.py @@ -4,6 +4,7 @@ from django.db import models from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from functions.custom_fields import EnumField from bitfield import BitField +from django.utils.translation import ugettext as _ CURENCIES = ('', 'USD', 'RUB', 'EUR') @@ -130,10 +131,10 @@ class Visit(AbstractOrder): excursion = models.BooleanField() notes = models.TextField(blank=True) -ADVERTYSE_TYPES = ((u'Рекламировать участника', u'Рекламировать участника'), - (u'Баннерная реклама', u'Баннерная реклама'), - (u'Приоритетное размещение событий в каталоге',u'Приоритетное размещение событий в каталоге'), - (u'Персональная визитка Вашей компании',u'Персональная визитка Вашей компании')) +ADVERTYSE_TYPES = ((u'Рекламировать участника', _(u'Рекламировать участника')), + (u'Баннерная реклама', _(u'Баннерная реклама')), + (u'Приоритетное размещение событий в каталоге', _(u'Приоритетное размещение событий в каталоге')), + (u'Персональная визитка Вашей компании', _(u'Персональная визитка Вашей компании'))) class Advertising(AbstractOrder): type = models.CharField(max_length=255, blank=True, null=True) @@ -146,14 +147,14 @@ class CallBack(models.Model): class Meta: ordering = ['-created'] - + class LinkedService(models.Model): service = models.ForeignKey(Service, blank=False) - countries = models.ManyToManyField('country.Country', blank=True, verbose_name=u"Страны") - exclude_countries = models.BooleanField(default=False, verbose_name=u"Исключить страны") - expositions = models.ManyToManyField('exposition.Exposition', blank=True, verbose_name= u"Выставки") - conferences = models.ManyToManyField('conference.Conference', blank=True, verbose_name=u'Конференции') + countries = models.ManyToManyField('country.Country', blank=True, verbose_name=_(u"Страны")) + exclude_countries = models.BooleanField(default=False, verbose_name=_(u"Исключить страны")) + expositions = models.ManyToManyField('exposition.Exposition', blank=True, verbose_name= _(u"Выставки")) + conferences = models.ManyToManyField('conference.Conference', blank=True, verbose_name=_(u'Конференции')) def update_countries_flag(self): from country.models import Country diff --git a/settings/forms.py b/settings/forms.py index a2e37d16..ae8087a6 100644 --- a/settings/forms.py +++ b/settings/forms.py @@ -5,6 +5,7 @@ from theme.models import Theme from .models import Html, LandingComment, LandingParticipationComment from article.models import Article from functions.forms import ExpoTranslatableModelForm, ExpoTranslatableModelForm_ +from django.utils.translation import ugettext as _ class HtmlForm(ExpoTranslatableModelForm): @@ -21,7 +22,7 @@ class CommentForm(ExpoTranslatableModelForm_): @property def verbose(self): - return u'Редактировать комментарий' if self.instance.pk else u'Создать комментарий' + return _(u'Редактировать комментарий') if self.instance.pk else _(u'Создать комментарий') class ParticipationCommentForm(CommentForm): @@ -47,7 +48,7 @@ class MainPageThemes(forms.Form): class MainPageNews(forms.Form): - main_page_news = forms.CharField(label=u'Новости', widget=forms.HiddenInput(), required=False,) + main_page_news = forms.CharField(label=_(u'Новости'), widget=forms.HiddenInput(), required=False,) def save(self): data = self.cleaned_data diff --git a/specialist_catalog/models.py b/specialist_catalog/models.py index 428eb6dc..ee2c2c7f 100644 --- a/specialist_catalog/models.py +++ b/specialist_catalog/models.py @@ -7,6 +7,7 @@ from country.models import Country from django.core.urlresolvers import reverse_lazy from django.utils.translation import get_language import copy +from django.utils.translation import ugettext as _ # types of catalog _country = 1 @@ -14,11 +15,11 @@ _city = 2 class Specialist(models.Model): - name = models.CharField(max_length=255, verbose_name=u"Полное имя", blank=False) - languages = models.CharField(max_length=255, verbose_name=u"Языки") - city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=u"Город", blank=True) - country = models.ForeignKey(Country, on_delete=models.PROTECT, verbose_name=u"Страна") - photo = models.ImageField(verbose_name=u"Фото", upload_to="specialist_catalog/specialist_photo/", blank=True) + name = models.CharField(max_length=255, verbose_name=_(u"Полное имя"), blank=False) + languages = models.CharField(max_length=255, verbose_name=_(u"Языки")) + city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=_(u"Город"), blank=True) + country = models.ForeignKey(Country, on_delete=models.PROTECT, verbose_name=_(u"Страна")) + photo = models.ImageField(verbose_name=_(u"Фото"), upload_to="specialist_catalog/specialist_photo/", blank=True) def __unicode__(self): @@ -28,22 +29,22 @@ class Specialist(models.Model): class SpecialistCatalog(TranslatableModel): _country = 1 _city = 2 - price = models.IntegerField(verbose_name=u"Цена", default=200) - currency = models.CharField(max_length=255, verbose_name=u"Валюта", default=u"EUR") - logo = models.ImageField(db_column= "logo_preview", verbose_name=u"Логотип", blank=True, upload_to='specialist_catalog/logo_preview/') - place_photo = models.ImageField(verbose_name=u"Фото для города", blank=True, upload_to='specialist_catalog/place_photo/') - specialists = models.ManyToManyField(Specialist, verbose_name=u"Специалисты", blank=True) - city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=u"Город", blank=True, null=True) - country = models.ForeignKey(Country, on_delete=models.PROTECT, verbose_name=u"Страна", blank=False) - type = models.PositiveSmallIntegerField(verbose_name=u"Тип(Страна/Город)", default=2) + price = models.IntegerField(verbose_name=_(u"Цена"), default=200) + currency = models.CharField(max_length=255, verbose_name=_(u"Валюта"), default=u"EUR") + logo = models.ImageField(db_column= "logo_preview", verbose_name=_(u"Логотип"), blank=True, upload_to='specialist_catalog/logo_preview/') + place_photo = models.ImageField(verbose_name=_(u"Фото для города"), blank=True, upload_to='specialist_catalog/place_photo/') + specialists = models.ManyToManyField(Specialist, verbose_name=_(u"Специалисты"), blank=True) + city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=_(u"Город"), blank=True, null=True) + country = models.ForeignKey(Country, on_delete=models.PROTECT, verbose_name=_(u"Страна"), blank=False) + type = models.PositiveSmallIntegerField(verbose_name=_(u"Тип(Страна/Город)"), default=2) objects = TranslationManager() translations = TranslatedFields( - title=models.CharField(max_length=255, verbose_name=u"Заголовок"), - main_descr=models.CharField(max_length=1000, verbose_name=u"Краткое описание"), - benefits=models.CharField(max_length=2000, verbose_name=u"Преимущества"), - big_cities=models.TextField(verbose_name=u"Крупные города", blank=True) + title=models.CharField(max_length=255, verbose_name=_(u"Заголовок")), + main_descr=models.CharField(max_length=1000, verbose_name=_(u"Краткое описание")), + benefits=models.CharField(max_length=2000, verbose_name=_(u"Преимущества")), + big_cities=models.TextField(verbose_name=_(u"Крупные города"), blank=True) ) def __init__(self, *args, **kwargs): @@ -98,11 +99,11 @@ class SpecialistCatalog(TranslatableModel): class Feedback(models.Model): - company = models.CharField(max_length=255, verbose_name=u"Название компании") - name = models.CharField(max_length=100, verbose_name=u"Имя") - text = models.CharField(max_length=5000, verbose_name=u"Текст отзыва") - logo = models.ImageField(verbose_name=u"Логотип компании", upload_to='specialist_catalog/feedback_logo/', blank=True) - catalog = models.ForeignKey(SpecialistCatalog, verbose_name=u"Страница", blank=False) + company = models.CharField(max_length=255, verbose_name=_(u"Название компании")) + name = models.CharField(max_length=100, verbose_name=_(u"Имя")) + text = models.CharField(max_length=5000, verbose_name=_(u"Текст отзыва")) + logo = models.ImageField(verbose_name=_(u"Логотип компании"), upload_to='specialist_catalog/feedback_logo/', blank=True) + catalog = models.ForeignKey(SpecialistCatalog, verbose_name=_(u"Страница"), blank=False) def __unicode__(self): return "Feedback from %s" % self.company diff --git a/templates/admin/expobanner/link_list.html b/templates/admin/expobanner/link_list.html index ab017c63..399637a0 100644 --- a/templates/admin/expobanner/link_list.html +++ b/templates/admin/expobanner/link_list.html @@ -1,4 +1,5 @@ {% extends 'base.html' %} +{% load i18n %} {% block body %} @@ -12,8 +13,8 @@
    Объектссылка для отслеживания{% trans "Объект" %}{% trans "ссылка для отслеживания" %}    
    {{ item }} {{request.get_host}}{{ item.get_click_link }}Изменить Статистика {% trans "Изменить" %} {% trans "Статистика" %}
      @@ -39,7 +40,7 @@ - + @@ -83,4 +84,4 @@

      Ваша подписка на портале Expomap

      {% trans "Ваша подписка на портале" %} Expomap

      @@ -48,17 +49,17 @@
      -

      Добрый день, {{ user.first_name }}!

      +

      {% trans "Добрый день" %}, {{ user.first_name }}!

      -

      Благодарим за подписку! Остался 1 шаг - подтвердить Ваш электронный адрес, нажав на кнопку:

      +

      {% trans "Благодарим за подписку! Остался 1 шаг - подтвердить Ваш электронный адрес, нажав на кнопку:" %}

      - подтвердить подписку + {% trans "подтвердить подписку" %}
      - \ No newline at end of file + diff --git a/templates/client/organiser/add_event.html b/templates/client/organiser/add_event.html index 6c5d169b..3b498297 100644 --- a/templates/client/organiser/add_event.html +++ b/templates/client/organiser/add_event.html @@ -22,7 +22,7 @@

      - +
      @@ -248,7 +248,7 @@

      {% trans 'Шаг 2. Добавление фото' %}

      -
      + 1,2 балла к рейтингу
      +
      {% blocktrans %}+ 1,2 балла к рейтингу{% endblocktrans %}
      @@ -257,21 +257,20 @@
      -

      более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать его - выше других

      +

      {% trans "более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать его выше других" %}


      @@ -281,7 +280,7 @@

      {% trans 'Шаг 3. Статистика и условия участия тест' %}

      -
      + 0,9 баллов к рейтингу
      +
      {% blocktrans %}+ 0,9 баллов к рейтингу{% endblocktrans %}
      @@ -289,7 +288,7 @@
      - +
      @@ -297,12 +296,12 @@

      - +
      Россия + value="1">{% trans "Россия" %}
    • + value="2">{% trans "Украина" %}
    • + value="3">{% trans "Беларусь" %}
    • + value="4">{% trans "Бельгия" %}
    • + value="5">{% trans "Германия" %}
    • + value="6">{% trans "Франция" %}
    @@ -412,23 +411,23 @@
    -

    Стоимость посещения и участия

    +

    {% trans "Стоимость посещения и участия" %}

    -
    Стоимость билетов
    +
    {% trans "Стоимость билетов" %}
    • @@ -438,14 +437,14 @@
    -
    Предварительная регистрация
    +
    {% trans "Предварительная регистрация" %}

    @@ -454,7 +453,7 @@
    @@ -464,26 +463,26 @@
    -
    Регистрация на стойке
    +
    {% blocktrans %}Регистрация на стойке{% endblocktrans %}
    -
    Стоимость аренды 1м²
    +
    {% trans "Стоимость аренды 1м²" %}
    • @@ -493,7 +492,7 @@
      @@ -503,7 +502,7 @@
      @@ -512,7 +511,7 @@

    - +
    м² @@ -520,12 +519,12 @@

    - +
    @@ -534,7 +533,7 @@

    - +
    @@ -554,16 +553,15 @@
    -

    более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать - его выше других

    +

    {% trans "более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать его выше других" %}

    @@ -587,4 +585,4 @@ ] }); - {% endblock %} \ No newline at end of file + {% endblock %} diff --git a/templates/client/photoreport.html b/templates/client/photoreport.html index cf857854..4a7a29f7 100644 --- a/templates/client/photoreport.html +++ b/templates/client/photoreport.html @@ -3,7 +3,7 @@ {% load i18n %} {% block content_bread_scrumbs %} \ No newline at end of file +
    diff --git a/templates/client/popups/callback.html b/templates/client/popups/callback.html index cde6c943..b678caa7 100644 --- a/templates/client/popups/callback.html +++ b/templates/client/popups/callback.html @@ -7,7 +7,7 @@
    -

    Вам удобнее, чтобы мы Вам позвонили? Укажите контактный номер телефона и имя, и наши консультанты свяжутся с Вами.

    +

    {% trans "Вам удобнее, чтобы мы Вам позвонили? Укажите контактный номер телефона и имя, и наши консультанты свяжутся с Вами." %}

    @@ -25,4 +25,4 @@
    -
    \ No newline at end of file +
    diff --git a/templates/client/popups/register.html b/templates/client/popups/register.html index 333ca6b5..86c5f655 100644 --- a/templates/client/popups/register.html +++ b/templates/client/popups/register.html @@ -45,7 +45,7 @@
    -
    Ошибка
    +
    {% trans "Ошибка" %}
    @@ -63,4 +63,4 @@
    -
    \ No newline at end of file +
    diff --git a/templates/client/popups/theme.html b/templates/client/popups/theme.html index 709d2e3f..5bd53b42 100644 --- a/templates/client/popups/theme.html +++ b/templates/client/popups/theme.html @@ -12,10 +12,10 @@
    - +
    - +
    {% comment %} {# заморожено #} diff --git a/templates/client/search/search.html b/templates/client/search/search.html index 2e42a3bc..22ec7a1e 100644 --- a/templates/client/search/search.html +++ b/templates/client/search/search.html @@ -1,7 +1,7 @@ +{% load i18n %} - -

    Search

    +

    {% trans "Search" %}

    @@ -15,21 +15,21 @@
    {% if query %} -

    Results

    +

    {% trans "Results" %}

    {% for result in page.object_list %}

    {{ result.object.title }}

    {% empty %} -

    No results found.

    +

    {% trans "No results found." %}

    {% endfor %} {% if page.has_previous or page.has_next %}
    - {% if page.has_previous %}{% endif %}« Previous{% if page.has_previous %}{% endif %} + {% if page.has_previous %}{% endif %}« {% trans "Previous" %}{% if page.has_previous %}{% endif %} | - {% if page.has_next %}{% endif %}Next »{% if page.has_next %}{% endif %} + {% if page.has_next %}{% endif %}{% trans "Next" %} »{% if page.has_next %}{% endif %}
    {% endif %} {% else %} diff --git a/templates/client/service/participation.html b/templates/client/service/participation.html index 659ab200..acf7965c 100644 --- a/templates/client/service/participation.html +++ b/templates/client/service/participation.html @@ -233,10 +233,10 @@
    -
    Волкова Елизавета
    +
    {% trans "Волкова Елизавета" %}
    - Хочу поблагодарить команду маркетологов Expomap за организацию нашего участия в выставке ТрансРоссия. Для нас это было чем-то новым, и благодаря опыту ребят мы избежали большого количества проблем и решали все возникающие вопросы очень оперативно. Если говорить о результатах работы на выставке, то мы собрали за 4 дня более 300 рабочих контактов и запросов, часть из которых выглядят очень перспективно. Мы сделали это вместе с Expomap и хотим сказать спасибо за их идеи, глубокое погружение в наши задачи, креативный подход и четкую помощь в реализации! Будем рады работать с вами и в других проектах! + {% trans "Хочу поблагодарить команду маркетологов Expomap за организацию нашего участия в выставке ТрансРоссия. Для нас это было чем-то новым, и благодаря опыту ребят мы избежали большого количества проблем и решали все возникающие вопросы очень оперативно. Если говорить о результатах работы на выставке, то мы собрали за 4 дня более 300 рабочих контактов и запросов, часть из которых выглядят очень перспективно. Мы сделали это вместе с Expomap и хотим сказать спасибо за их идеи, глубокое погружение в наши задачи, креативный подход и четкую помощь в реализации! Будем рады работать с вами и в других проектах!" %}
    @@ -264,7 +264,7 @@
    Anatolios Spyrlidis
    - Мы принимали участие со своим стендом в выставке Boot Duesseldorf в Германии в январе 2014. Выражаем благодарность сотрудникам Expomap, а также персональному консультанту Руслану Шапилову за оперативность, мы остались довольны качеством оказанных услуг! + {% trans "Мы принимали участие со своим стендом в выставке Boot Duesseldorf в Германии в январе 2014. Выражаем благодарность сотрудникам Expomap, а также персональному консультанту Руслану Шапилову за оперативность, мы остались довольны качеством оказанных услуг!" %}
    @@ -299,4 +299,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/service/remotely.html b/templates/client/service/remotely.html index 5dc569b7..df8b00db 100644 --- a/templates/client/service/remotely.html +++ b/templates/client/service/remotely.html @@ -220,7 +220,7 @@
    Акулова Ольга
    - Остались очень довольны заочным посещением выставки Photokina — поехать сами не смогли, но получили визитки нужных компаний. Большое cпасибо сотрудникам за оперативность работы! + {% trans "Остались очень довольны заочным посещением выставки Photokina — поехать сами не смогли, но получили визитки нужных компаний. Большое cпасибо сотрудникам за оперативность работы!" %}
    @@ -248,7 +248,7 @@
    Рязанцев Денис
    - Особой оценки достойна оперативность предоставления услуг и их качество. Хочу отметить профессионализм, организованность, добросовестность, вежливость, грамотность сотрудников компании! + {% trans "Особой оценки достойна оперативность предоставления услуг и их качество. Хочу отметить профессионализм, организованность, добросовестность, вежливость, грамотность сотрудников компании!" %}
    @@ -296,4 +296,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/service/thank_u_page.html b/templates/client/service/thank_u_page.html index 2a50c2ca..20890934 100644 --- a/templates/client/service/thank_u_page.html +++ b/templates/client/service/thank_u_page.html @@ -1,10 +1,11 @@ {% extends 'base_catalog.html' %} +{% load i18n %} {% block bread_scrumbs %} {% endblock %} {% block page_title %} -

    Ваша заявка успешно отправлена!

    +

    {% trans "Ваша заявка успешно отправлена!" %}

    {% endblock %} {% block page_body %} @@ -15,14 +16,14 @@
    24 часа
    -

    Благодарим Вас за использование сервиса ExpoMap.ru, мы очень ценим Ваше внимание и время.

    -

    В кратчайшие сроки наши консультанты свяжутся с Вами. Регламент ответа на запрос -24 часа, в рабочие дни. Если по каким-либо причинам с Вами не связались в указанный срок, или Вы недовольны обслуживанием, отправьте короткое письмо с номером заявки на адрес evm@expomap.ru.

    -

    Также Вы можете позвонить нам для ускорения процесса, если Ваш запрос является срочным.

    + {% blocktrans %}

    Благодарим Вас за использование сервиса ExpoMap.ru, мы очень ценим Ваше внимание и время.

    {% endblocktrans %} +

    {% trans "В кратчайшие сроки наши консультанты свяжутся с Вами. Регламент ответа на запрос -24 часа, в рабочие дни. Если по каким-либо причинам с Вами не связались в указанный срок, или Вы недовольны обслуживанием, отправьте короткое письмо с номером заявки на адрес evm@expomap.ru." %}

    +

    {% trans "Также Вы можете позвонить нам для ускорения процесса, если Ваш запрос является срочным." %}

    {% if object %} -

    Что дальше Вы хотите делать?

    +

    {% trans "Что дальше Вы хотите делать?" %}

    @@ -31,7 +32,7 @@
    {% with theme=object.theme.all.0 %}

    - Перейти к списку выставок по тематике «{{ theme.name }}» + {% trans "Перейти к списку выставок по тематике" %} «{{ theme.name }}»

    {% endwith %}
    @@ -53,7 +54,7 @@
     
    - Вернуться к просмотру выставки «{{ object.name }}» + {% trans "Вернуться к просмотру выставки" %} «{{ object.name }}»
    @@ -64,7 +65,7 @@
    {% with city=object.city %}

    - Перейти к списку ближайших выставок в городе «{{ city.name }}» + {% trans "Перейти к списку ближайших выставок в городе" %} «{{ city.name }}»

    {% endwith %}
    @@ -75,4 +76,4 @@
    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/service/tickets.html b/templates/client/service/tickets.html index 82966114..33cf8761 100644 --- a/templates/client/service/tickets.html +++ b/templates/client/service/tickets.html @@ -231,7 +231,7 @@
    Денис Хома
    - Мне понравилось работать с вашей компанией и в частности с Евгенией Булавиной. Все быстро и предельно понятно. Большое спасибо! + {% trans "Мне понравилось работать с вашей компанией и в частности с Евгенией Булавиной. Все быстро и предельно понятно. Большое спасибо!" %}
    @@ -259,7 +259,7 @@
    Ангелина Плещеева
    - Спасибо Вам за Вашу работу. Все быстро и четко. + {% trans "Спасибо Вам за Вашу работу. Все быстро и четко." %}
    @@ -295,4 +295,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/service/tour.html b/templates/client/service/tour.html index 716013a0..884a4bf7 100644 --- a/templates/client/service/tour.html +++ b/templates/client/service/tour.html @@ -315,7 +315,7 @@
    Полякова Анастасия
    - Спасибо огромное данной компании (в частности, Евгении, с которой я общалась). Девушка очень вежливая, отзывчивая. Я безумно ей благодарна за помощь (а вопросов у меня была масса). Высококвалифицированный специалист. Компания специалистов. Одни слова благодарности. + {% trans "Спасибо огромное данной компании (в частности, Евгении, с которой я общалась). Девушка очень вежливая, отзывчивая. Я безумно ей благодарна за помощь (а вопросов у меня была масса). Высококвалифицированный специалист. Компания специалистов. Одни слова благодарности." %}
    @@ -344,7 +344,7 @@
    -Очень нравится с Вами сотрудничать, так как всегда есть отклик на наши требования. Разочарований не было. Спасибо за отличную работу! +{% trans "Очень нравится с Вами сотрудничать, так как всегда есть отклик на наши требования. Разочарований не было. Спасибо за отличную работу!" %}
    @@ -387,4 +387,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/service/translator.html b/templates/client/service/translator.html index 341dc0d5..cdbc3e56 100644 --- a/templates/client/service/translator.html +++ b/templates/client/service/translator.html @@ -309,14 +309,14 @@
    + data-url="{{ 'http://www.unix-medical.ru/'|base64_encode }}">{% trans "Медицинская компания ЮНИКС" %}
    Марино Шихова
    - Мы, медицинская компания ЮНИКС, уже несколько лет обращаемся в компанию Expomap за услугами переводчиков и переводчиков-гидов по всему миру. Сотрудники компании всегда оперативно реагируют на запросы, очень доброжелательны и приветливы, готовы идти навстречу. Качество работы предоставляемых переводчиков всегда очень высокое, никаких нареканий по их работе от наших сотрудников и клиентов не поступало, только положительные отзывы. Надеемся на такое же приятное сотрудничество и в будущем! + {% trans "Мы, медицинская компания ЮНИКС, уже несколько лет обращаемся в компанию Expomap за услугами переводчиков и переводчиков-гидов по всему миру. Сотрудники компании всегда оперативно реагируют на запросы, очень доброжелательны и приветливы, готовы идти навстречу. Качество работы предоставляемых переводчиков всегда очень высокое, никаких нареканий по их работе от наших сотрудников и клиентов не поступало, только положительные отзывы. Надеемся на такое же приятное сотрудничество и в будущем!" %}
    @@ -337,14 +337,14 @@ + {% trans "ТоргХолодМаш" %}
    Ольга Фрол
    - Работу по организации переводчика оцениваю положительно. Скорость ответов и работы была хорошей. В будущем воспользуюсь повторно услугами и порекомендую партнерам. Ответственность переводчика и уровень был превосходным. + {% trans "Работу по организации переводчика оцениваю положительно. Скорость ответов и работы была хорошей. В будущем воспользуюсь повторно услугами и порекомендую партнерам. Ответственность переводчика и уровень был превосходным." %}
    @@ -387,4 +387,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/client/simple_pages/expo_seminar.html b/templates/client/simple_pages/expo_seminar.html index 25cc0032..81a7687c 100644 --- a/templates/client/simple_pages/expo_seminar.html +++ b/templates/client/simple_pages/expo_seminar.html @@ -1,10 +1,12 @@ {% load static %} +{% load i18n %} + - Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую? + {% trans "Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую?" %} @@ -62,7 +64,7 @@
    -

    Наш телефон:

    +

    {% trans "Наш телефон:" %}

    +7 (499) 999-12-07

    @@ -72,11 +74,11 @@
    -

    «Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую?»

    +

    {% trans "«Продвижение мероприятий: как узнать, какая половина бюджета уходит впустую?»" %}

    -

    25 июня 2015г. 10:30-12:30 Москва, Digital October, пресс-центр

    -

    Только для партнеров выставочного портала Expomap
    Участие бесплатное

    -

    Зарегистрироваться

    +

    {% trans "25 июня 2015г. 10:30-12:30 Москва, Digital October, пресс-центр" %}

    + {% blocktrans %}

    Только для партнеров выставочного портала Expomap
    Участие бесплатное

    {% endblocktrans %} +

    {% trans "Зарегистрироваться" %}

    @@ -86,13 +88,15 @@
    -

    Практический семинар для маркетологов, руководителей выставочных проектов, а также специалистов, ответственных за привлечение участников и посетителей на деловые события.

    +

    {% trans "Практический семинар для маркетологов, руководителей выставочных проектов, а также специалистов, ответственных за привлечение участников и посетителей на деловые события." %}

    + {% blocktrans %}

    Я знаю, что половина моего рекламного бюджета расходуется впустую, вот тольно не знаю, какая именно.
    Джон Ванамейкер,
    легендарный американский коммерсант

    + {% endblocktrans %}
    @@ -101,31 +105,30 @@
    -

    В текущей конъюнктуре рынка грамотные компании не отказываются от рекламы и маркетинга, а начинают считать эффект от каждого вложенного рубля. Они точно знают, какая половина бюджета принесла клиентов, а от какой следует отказаться. Именно такой подход позволяет не только сохранить или даже увеличить количество участников и посетителей ваших событий, но и снизить средние затраты на их привлечение.

    +

    {% trans "В текущей конъюнктуре рынка грамотные компании не отказываются от рекламы и маркетинга, а начинают считать эффект от каждого вложенного рубля. Они точно знают, какая половина бюджета принесла клиентов, а от какой следует отказаться. Именно такой подход позволяет не только сохранить или даже увеличить количество участников и посетителей ваших событий, но и снизить средние затраты на их привлечение." %}

    -

    Об этом мы и поговорим на семинаре вместе с практиками маркетинга Рунета.

    -

    Программа мероприятия:

    +

    {% trans "Об этом мы и поговорим на семинаре вместе с практиками маркетинга Рунета." %}

    +

    {% trans "Программа мероприятия:" %}

    10:30-11:00

    -

    Регистрация участников. Приветственный кофе

    +

    {% trans "Регистрация участников. Приветственный кофе" %}

    11:00 - 11:40

    -

    Умные инструменты продвижения события: - казнить нельзя, помиловать

    +

    {% trans "Умные инструменты продвижения события: казнить нельзя, помиловать" %}

      -
    • Каналы привлечения участников и посетителей в Рунете
    • -
    • Построение эффективной коммуникации для каждого канала
    • -
    • Медиаплан маркетолога события в условиях ограниченности ресурсов
    • +
    • {% trans "Каналы привлечения участников и посетителей в Рунете" %}
    • +
    • {% trans "Построение эффективной коммуникации для каждого канала" %}
    • +
    • {% trans "Медиаплан маркетолога события в условиях ограниченности ресурсов" %}
    -
    Евгения Мануковская
    основатель Expomap
    + {% blocktrans %}
    Евгения Мануковская
    основатель Expomap
    {% endblocktrans %}
    @@ -139,17 +142,17 @@

    11:45 - 12:15

    -

    Способы отслеживания эффективности каналов

    +

    {% trans "Способы отслеживания эффективности каналов" %}

      -
    • Настройка Google Tag Manager
    • -
    • Когоргный анализ графика
    • -
    • Обобщенные отчеты в Google Analytics
    • +
    • {% trans "Настройка Google Tag Manager" %}
    • +
    • {% trans "Когоргный анализ графика" %}
    • +
    • {% trans "Обобщенные отчеты в Google Analytics" %}
    -
    Екатерина Герасименко
    Заместитель генерального директора по маркетингу Venta research Lab
    + {% blocktrans %}
    Екатерина Герасименко
    Заместитель генерального директора по маркетингу Venta research Lab
    {% endblocktrans %}
    @@ -158,28 +161,27 @@

    12:15 - 12:30

    -

    Презентация партнерских программ Expomap для организаторов событий

    +

    {% trans "Презентация партнерских программ Expomap для организаторов событий" %}

    -

    Место проведения:

    -

    Пресс-центр Digital October Москва, Берсеневская набережная, 6, стр. 3

    -

    Посмотреть на карте

    +

    {% trans "Место проведения:" %}

    +

    {% trans "Пресс-центр Digital October Москва, Берсеневская набережная, 6, стр. 3" %}

    +

    {% trans "Посмотреть на карте" %}

    -

    Зарегистрироваться

    +

    {% trans "Зарегистрироваться" %}

    -

    Есть вопросы?

    +

    {% trans "Есть вопросы?" %}

    (499) 999 12 07
    musatova@expomap.ru
    Ольга Мусатова

    -

    Оставьте свои контактные данные, и мы пришлем Вам личное приглашение на семинар или же доступ к - онлайн-трансляции.

    +

    {% trans "Оставьте свои контактные данные, и мы пришлем Вам личное приглашение на семинар или же доступ к онлайн-трансляции." %}

    -

    Спешите, количество мест ограничено!

    +

    {% trans "Спешите, количество мест ограничено!" %}

    @@ -188,37 +190,37 @@