Commits

Konrad Rymczak committed fe7bb60

Comments (0)

Files changed (35)

cmsplugin_contact/__init__.py

Empty file added.

cmsplugin_contact/admin.py

+from django.forms import ModelForm, Field, CharField, HiddenInput
+from django.forms.util import ErrorList
+from django.core.exceptions import ValidationError
+from django.contrib.sites.models import Site
+from django.conf import settings
+from django.utils.translation import ugettext_lazy as _
+
+from models import Contact
+
+class KeyField(CharField):
+    def validate(self, value):
+        # valdates always. validation is done in the form (see below)
+        pass
+
+class ContactAdminForm(ModelForm):
+    akismet_api_key = KeyField(max_length=255, label=_("Akismet API Key"), help_text=_('Get a Wordpress Key from http://akismet.com/'))
+
+    recaptcha_public_key = KeyField(max_length=255, label=_("ReCAPTCHA Public Key"), help_text=_('Get this from http://www.google.com/recaptcha'))
+    recaptcha_private_key = KeyField(max_length=255, label=_("ReCAPTCHA Private Key"), help_text=_('Get this from http://www.google.com/recaptcha'))
+    
+    class Meta:
+        model = Contact
+        
+    def _add_error(self, field_name, error):
+        if not field_name in self._errors:
+            self._errors[field_name] = ErrorList()
+        self._errors[field_name].append(error)
+    
+    def _check_akismet(self):
+        def add_error(error):
+            self._add_error('akismet_api_key', error)
+        
+        try:
+            from akismet import Akismet
+        except ImportError:
+           self._add_error('spam_protection_method', _('Akismet library is not installed. Use "easy_install akismet" or "pip install akismet".'))
+        
+        api_key = getattr(settings, "AKISMET_API_KEY", \
+                  self.cleaned_data['akismet_api_key'])
+        
+        if not hasattr(settings, "AKISMET_API_KEY"):
+            if not api_key:
+                add_error(Field.default_error_messages['required'])
+            else:
+                ak = Akismet(
+                    key = api_key,
+                    blog_url = 'http://%s/' % Site.objects.get(pk=settings.SITE_ID).domain
+                )
+                if not ak.verify_key():
+                    add_error(_('The API Key is not valid.'))
+                   
+    
+    def _check_recaptcha(self):
+            
+        try:
+            from recaptcha.client import captcha as recaptcha
+        except ImportError:
+            self._add_error('spam_protection_method', _('ReCAPTCHA library is not installed. Use "easy_install recaptcha-client" or "pip install recaptcha-client".'))
+            
+        public_key = getattr(settings, "RECAPTCHA_PUBLIC_KEY", \
+                     self.cleaned_data['recaptcha_public_key'])
+        private_key = getattr(settings, "RECAPTCHA_PRIVATE_KEY", \
+                      self.cleaned_data['recaptcha_private_key'])
+        
+        if not public_key:
+            self._add_error('recaptcha_public_key', Field.default_error_messages['required'])
+        if not private_key:
+            self._add_error('recaptcha_private_key', Field.default_error_messages['required'])
+            
+    
+    def clean(self):
+        
+        method = self.cleaned_data['spam_protection_method']
+        if method == 1:
+            # user chose aksimet => akismet api key is required
+            self._check_akismet()
+        elif method == 2:
+            # user chose recaptcha => recaptcha keys are required
+            self._check_recaptcha()
+        
+        return self.cleaned_data
+
+

cmsplugin_contact/cms_plugins.py

+from django.conf import settings
+from django.utils.translation import ugettext_lazy as _
+from django.forms.fields import CharField
+from django.core.mail import EmailMessage
+from django.template.loader import render_to_string
+
+from cms.plugin_base import CMSPluginBase
+from cms.plugin_pool import plugin_pool
+from cms.plugins.text.settings import USE_TINYMCE
+from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
+from models import Contact
+from forms import ContactForm, AkismetContactForm, RecaptchaContactForm, HoneyPotContactForm
+from admin import ContactAdminForm
+
+class ContactPlugin(CMSPluginBase):
+    model = Contact
+    name = _("Contact Form")
+    render_template = "cmsplugin_contact/contact.html"
+    form = ContactAdminForm
+    contact_form = ContactForm
+    subject_template = "cmsplugin_contact/subject.txt"
+    email_template = "cmsplugin_contact/email.txt"
+    
+    fieldsets = (
+        (None, {
+            'fields': ('site_email', 'email_label', 'subject_label', 'content_label', 'thanks', 'submit'),
+        }),
+        (_('Spam Protection'), {
+            'fields': ('spam_protection_method', 'akismet_api_key', 'recaptcha_public_key', 'recaptcha_private_key', 'recaptcha_theme')
+        })
+    )
+    
+    change_form_template = "cmsplugin_contact/admin/plugin_change_form.html"
+
+    def get_editor_widget(self, request, plugins):
+        """
+        Returns the Django form Widget to be used for
+        the text area
+        """
+        if USE_TINYMCE and "tinymce" in settings.INSTALLED_APPS:
+            from cms.plugins.text.widgets.tinymce_widget import TinyMCEEditor
+            return TinyMCEEditor(installed_plugins=plugins)
+        else:
+            return WYMEditor(installed_plugins=plugins)
+
+    def get_form_class(self, request, plugins):
+        """
+        Returns a subclass of Form to be used by this plugin
+        """
+        # We avoid mutating the Form declared above by subclassing
+        class TextPluginForm(self.form):
+            pass
+        widget = self.get_editor_widget(request, plugins)
+        
+        thanks_field = self.form.base_fields['thanks']
+        
+        TextPluginForm.declared_fields["thanks"] = CharField(widget=widget, required=False, label=thanks_field.label, help_text=thanks_field.help_text)
+        return TextPluginForm
+
+
+    def get_form(self, request, obj=None, **kwargs):
+        plugins = plugin_pool.get_text_enabled_plugins(self.placeholder, self.page)
+        form = self.get_form_class(request, plugins)
+        kwargs['form'] = form # override standard form
+        return super(ContactPlugin, self).get_form(request, obj, **kwargs)
+
+    def create_form(self, instance, request):
+        if instance.get_spam_protection_method_display() == 'Akismet':
+            AkismetContactForm.aksimet_api_key = instance.akismet_api_key
+            class ContactForm(self.contact_form, AkismetContactForm):
+                pass
+            FormClass = ContactForm
+        elif instance.get_spam_protection_method_display() == 'ReCAPTCHA':
+            #if you really want the user to be able to set the key in
+            # every form, this should be more flexible
+            class ContactForm(self.contact_form, RecaptchaContactForm):
+                recaptcha_public_key = getattr(
+                    settings, "RECAPTCHA_PUBLIC_KEY",
+                    instance.recaptcha_public_key)
+                recaptcha_private_key = getattr(
+                    settings, "RECAPTCHA_PRIVATE_KEY",
+                    instance.recaptcha_private_key)
+                recaptcha_theme = instance.recaptcha_theme
+
+            FormClass = ContactForm
+        else:
+            class ContactForm(self.contact_form, HoneyPotContactForm):
+                pass
+            FormClass = ContactForm
+            
+        if request.method == "POST":
+            return FormClass(request, data=request.POST, files=request.FILES)
+        else:
+            return FormClass(request)
+
+
+    def send(self, form, site_email, attachments=None):
+        subject = form.cleaned_data['subject']
+        if not subject:
+            subject = _('No subject')
+        email_message = EmailMessage(
+            render_to_string(self.subject_template, {
+                'subject': subject,
+            }).splitlines()[0],
+            render_to_string(self.email_template, {
+                'data': form.cleaned_data,
+            }),
+            getattr(settings, 'DEFAULT_FROM_EMAIL', form.cleaned_data['email']),
+            [site_email],
+            headers = {
+                'Reply-To': form.cleaned_data['email']
+            },)
+        if attachments:
+            for var_name, data in attachments.iteritems():
+                email_message.attach(data.name, data.read(), data.content_type)
+        email_message.send(fail_silently=False)
+    
+    def render(self, context, instance, placeholder):
+        request = context['request']
+
+        form = self.create_form(instance, request)
+    
+        if request.method == "POST" and form.is_valid():
+            self.send(form, instance.site_email, attachments=request.FILES)
+            context.update( {
+                'contact': instance,
+            })
+        else:
+            context.update({
+                'contact': instance,
+                'form': form,
+            })
+            
+        return context
+
+    def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
+        context.update({
+            'spam_protection_method': obj.spam_protection_method if obj else 0,
+            'recaptcha_settings': hasattr(settings, "RECAPTCHA_PUBLIC_KEY"),
+            'akismet_settings': hasattr(settings, "AKISMET_API_KEY"),
+        })
+        
+        return super(ContactPlugin, self).render_change_form(request, context, add, change, form_url, obj)
+        
+    
+plugin_pool.register_plugin(ContactPlugin)

cmsplugin_contact/forms.py

+from django import forms
+#import settings
+from cmsplugin_contact.nospam.forms import HoneyPotForm, RecaptchaForm, AkismetForm
+  
+class ContactForm(forms.Form):
+    email = forms.EmailField()
+    subject = forms.CharField(required=False)
+    content = forms.CharField(widget=forms.Textarea())
+
+  
+class HoneyPotContactForm(HoneyPotForm):
+    pass
+
+class AkismetContactForm(AkismetForm):
+    akismet_fields = {
+        'comment_author_email': 'email',
+        'comment_content': 'content'
+    }
+    akismet_api_key = None
+    
+
+class RecaptchaContactForm(RecaptchaForm):
+    recaptcha_public_key = None
+    recaptcha_private_key = None
+    recaptcha_theme = None

cmsplugin_contact/locale/de/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/de/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 15:23+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr ""
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Wordpress Key von http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr ""
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Erhältlich von http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr ""
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"Die Akismet Bibliothek ist nicht installiert. Zum installieren: "
+"\"easy_install akismet\" oder \"pip install akismet\""
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "Der API Key ist ungültig."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"Die ReCAPTCHA Bibliothek ist nicht installiert. Zum installieren: "
+"\"easy_install recaptcha-client\" oder \"pip install recaptcha-client\""
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Kontaktformular"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Spamschutz"
+
+#: cms_plugins.py:84
+msgid "No subject"
+msgstr "Kein Betreff"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "E-Mail Empfänger"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "E-Mail Absender Beschriftung"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Ihre E-Mail Adresse"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Betreff Beschriftung"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Betreff"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Nachrichteninhalt Beschriftung"
+
+#: models.py:23
+msgid "Message"
+msgstr "Nachricht"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Dankesnachricht"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Nachricht nach erfolgreichem Absenden"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Vielen Dank für Ihre Nachricht."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Senden Button Beschriftung"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Senden"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Spamschutzmethode"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "ReCAPTCHA Theme"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Bitte nicht anklicken."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Geben Sie bitte die beiden Wörter im Bild, durch ein Leerzeichen getrennt, ein."
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Sie haben keines der Wörter eingegeben."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Sie haben die beiden Wörter im Bild nicht eingegeben."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image"
+msgstr "Die eingegebenen Wörter waren nicht richtig."
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Sind Sie ein Robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Eingabe nicht korrekt, bitte erneut versuchen"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Obige Wörter eingeben:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Die gehörten Zahlen eingeben:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Anderes CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Audio CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Bild CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Hilfe"

cmsplugin_contact/locale/es/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/es/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Pedro A. Gracia Fajardo <pedro.gracia@impulzia.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.9.8\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 15:23+0200\n"
+"PO-Revision-Date: 2011-12-21 19:46+0100\n"
+"Last-Translator: Pedro A. Gracia Fajardo <pedro.gracia@impulzia.com>\n"
+"Language-Team: es <i18n@impulzia.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Clave para la API de Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Obtenga una Clave para Wordpress en http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "Clave Pública de ReCAPTCHA"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Obténgala en http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "Clave Privada de ReCAPTCHA"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"La librería Akismet no está instalada. Use \"easy_install akismet\" o \"pip "
+"install akismet\"."
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "La Clave de la API no es válida."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"La librería ReCAPTCHA no está instalada. Use \"easy_install recaptcha-client"
+"\" o \"pip install recaptcha-client\"."
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Formulario de Contacto"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Protección de Spam"
+
+#: cms_plugins.py:84
+msgid "No subject"
+msgstr "Sin asunto"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "Receptor del email"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Etiqueta del que envía el email"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Su dirección de email"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Etiqueta del asunto"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Asunto"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Etiqueta del contenido del mensaje"
+
+#: models.py:23
+msgid "Message"
+msgstr "Mensaje"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Mensaje de agradecimiento"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Mensaje mostrado si el envío ha sido un éxito"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Gracias por su mensaje."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Valor del botón de envío"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Enviar"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Método de protección contra el spam"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "Tema del ReCAPTCHA"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Por favor, no marque esta caja."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr ""
+"Por favor, introduzca las dos palabras de la imágen separadas por un espacio."
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "No ha introducido ninguna de las palabras."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "No has introducido las dos palabras mostradas en la imágen."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image"
+msgstr "Las palabras que ha introducido no concuerdan con las de la imágen."
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "¿Eres un robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Incorrecto, por favor inténtelo de nuevo"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Introduzca las palabras de arriba:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Introduzca los números que escuche:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Obtener otro CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Obtener un CAPTCHA de audio"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Obtener un CAPTCHA de imágen"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Ayuda"

cmsplugin_contact/locale/fr/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/fr/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Gregory Favre <gregory.favre@gmail.com>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 15:23+0200\n"
+"PO-Revision-Date: 2012-08-24 12:40+0100\n"
+"Last-Translator: Gregory Favre <gregory.favre@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Clé de l'API d'Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Clé Wordpress de http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "Clé publique ReCAPTCHA"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Récupérable sur http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "Clé privée ReCAPTCHA"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"La bibliothèque Akismet n'est pas installée. Pour l'installer: "
+"\"easy_install akismet\" ou \"pip install akismet\""
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "La clé de l'API n'est pas valide."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"La bibliothèque ReCAPTCHA n'est pas installée. Pour l'installer: "
+"\"easy_install recaptcha-client\" ou \"pip install recaptcha-client\""
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Formulaire de contact"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Protection contre le spam"
+
+#: cms_plugins.py:84
+msgid "No subject"
+msgstr "Aucun sujet"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "Destinataire de l'email"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Libellé pour l'adresse email"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Votre adresse email"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Libellé pour l'objet"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Objet"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Libellé pour le message"
+
+#: models.py:23
+msgid "Message"
+msgstr "Message"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Message de remerciement"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Message affiché après la réception du formulaire"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Merci pour votre message."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Libellé du bouton d'envoi"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Envoyer"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Méthode de protection contre le spam"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "Thème de ReCAPTCHA"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Veuillez ne pas cocher cette case."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Veuillez saisir les deux mots présents sur l'image, séparés par une espace:"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Vous n'avez saisi aucun des mots."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Vous n'avez pas saisi les deux mots présents sur l'image."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image"
+msgstr "Les mots que vous avez saisis ne correspondent pas à ceux de l'image."
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Êtes-vous un robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "La saisie est incorrecte, veuillez réessayer"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Veuillez saisir les mots affichés ci-dessus:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Veuillez saisir les chiffres que vous entendez:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Obtenir un nouveau CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Obtenir un CAPTCHA audio"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Obtenir un CAPTCHA visuel"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Aide"

cmsplugin_contact/locale/it/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/it/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# 
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-27 10:37+0200\n"
+"PO-Revision-Date: 2011-10-27 11:54\n"
+"Last-Translator:   <marco.badan@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Translated-Using: django-rosetta 0.6.2\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Chiave API Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Otteni una chiave Wordpress da http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "ReCAPTCHA chiave pubblica"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Ottenila da http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "ReCAPTCHA chiave privata"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"La libreria Akismet non è installata. Usa \"easy_install akismet\" o "
+"\"pip install akismet\"."
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "La chiave API non è valida."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\""
+" or \"pip install recaptcha-client\"."
+msgstr ""
+"La libreria ReCAPTCHA non è installata. Usa \"easy_install ReCaptcha-"
+"client\" o \"pip install recaptcha-client\"."
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Modulo Contatti"
+
+#: cms_plugins.py:28
+msgid "Spam Protection"
+msgstr "Protezione dallo Spam"
+
+#: cms_plugins.py:98
+msgid "No subject"
+msgstr "Nessun oggetto"
+
+#: models.py:21
+msgid "Email recipient"
+msgstr "Email del destinatario"
+
+#: models.py:22
+msgid "Email sender label"
+msgstr "Etichetta e-mail del mittente"
+
+#: models.py:23
+msgid "Your email address"
+msgstr "Il tuo indirizzo e-mail"
+
+#: models.py:25
+msgid "Subject label"
+msgstr "Etichetta titolo"
+
+#: models.py:26
+msgid "Subject"
+msgstr "Titolo"
+
+#: models.py:27
+msgid "Message content label"
+msgstr "Etichetta contenuto messaggio"
+
+#: models.py:28
+msgid "Message"
+msgstr "Messaggio"
+
+#: models.py:30
+msgid "Thanks message"
+msgstr "Messaggio di ringraziamento"
+
+#: models.py:31
+msgid "Message displayed on successful submit"
+msgstr "Messaggio visualizzato in caso di invio con successo"
+
+#: models.py:32
+msgid "Thank you for your message."
+msgstr "Grazie per il tuo messaggio."
+
+#: models.py:33
+msgid "Submit button value"
+msgstr "Valore del bottone \"Invia\""
+
+#: models.py:34
+msgid "Submit"
+msgstr "Invia"
+
+#: models.py:37
+msgid "Spam protection method"
+msgstr "Metodo di protezione anti-spam"
+
+#: models.py:47
+msgid "ReCAPTCHA theme"
+msgstr "Tema ReCAPTCHA"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Non selezionare questa casella."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Inserisci le due parole nell'immagine separate da uno spazio:"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Non hai inserito nessuna delle parole."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Non hai inserito le due parole mostrate nell'immagine."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image."
+msgstr "Le parole inserite non corrispondono a quelle dell'immagine."
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Sei un robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Errore, riprova di nuovo"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Inserisci le parole sopra:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Inserisci i numeri che senti:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Chiedi un altro CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Chiedi un audio CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Chiedi un'immagine CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Aiuto"

cmsplugin_contact/locale/no/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/no/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 15:23+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "API-nøkkel for Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Hent Wordspress-nøkkel fra http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "Offentlig ReCAPTCHA-nøkkel"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Hent denne fra http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "Privat ReCAPTCHA-nøkkel"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"Akismet-biblioteket er ikke installert. Benytt \"easy_install akismet\" "
+"eller \"pip install akismet\""
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "API-nøkkelen er ikke gyldig."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"ReCAPTCHA-biblioteket er ikke installert. Benytt \"easy_install recaptcha-client\" "
+"eller \"pip install recaptcha-client\""
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Kontaktskjema"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Søpplebeskyttelse"
+
+#: cms_plugins.py:84
+msgid "No subject"
+msgstr "Uten emne"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "Epost-mottaker"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Etikett for avsender"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Din epostadresse"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Etikett for emne"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Emne"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Etikett for meldingsinnhold"
+
+#: models.py:23
+msgid "Message"
+msgstr "Melding"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Bekreftelsesmelding"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Melding vises ved gjennomført sending"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Takk for din beskjed."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Etikett for send-knapp"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Send"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Metode for søppelbeskyttelse"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "ReCAPTCHA-tema"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Vennligst ikke huk av denne boksen."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Vennligst oppgi de to ordene på bidet, separert med et mellomrom:"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Du oppga ingen av ordene."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Du oppga ikke de to ordene vist på bildet."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image"
+msgstr "Ordene du oppga stemte ikke overens med de på bildet"
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Er du en robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Ikke korrekt, vennligst prøv igjen"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Oppgi ordene ovenfor:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Oppgi tallene du hører:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Få en ny CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Få en lydbasert CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Få en bilde-CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Hjelp"

cmsplugin_contact/locale/pt/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/pt/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-09-09 03:35+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Chave API Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Obtenha um chave Wordpress em http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "Chave Pública ReCAPTCHA"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Obtenha em http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "Chave Privada ReCAPTCHA"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"Biblioteca Akismet não está instalada. Use \"easy_install akismet\" ou \"pip "
+"install akismet\"."
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "A Chave da API não é válida."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"Biblioteca ReCAPTCHA não está instalada. Use \"easy_install recaptcha-client"
+"\" or \"pip install recaptcha-client\"."
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Formulário de Contacto"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Proteção de Spam"
+
+#: cms_plugins.py:87
+msgid "No subject"
+msgstr "Sem assunto"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "E-mail de destino"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Rótulo de e-mail do remetente"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Seu endereço de e-mail"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Rótulo do assunto"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Assunto"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Rótulo do conteúdo da mensagem"
+
+#: models.py:23
+msgid "Message"
+msgstr "Mensagem"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Mensagem de agradecimento"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Mensagem exibida ao enviar com sucesso"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Obrigado for sua mensagem."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Nome do botão de envio"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Enviar"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Método de proteção de spam"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "Tema do ReCAPTCHA"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Não seleccionar esta caixa"
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Introduza as duas palavras na imagem separada por um espaço"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Não introduziu nenhuma palavra "
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Não introduziu as duas palavras da imagem"
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image."
+msgstr "As palavras não coincidem com as da imagem"
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "És um Robô?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Incorrecto, por favor tente novamente"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Digita as palavras acima"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Digita os números que ouvires"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Obter outro CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Obter um CAPTCHA de áudio"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Obter uma imagem CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Ajuda"

cmsplugin_contact/locale/pt_BR/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/pt_BR/LC_MESSAGES/django.po

+# Copyright (C) 2011
+# This file is distributed under the same license as the PACKAGE package.
+# William Grzybowski <william@agencialivre.com.br> 2011.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-08-12 11:52+0200\n"
+"PO-Revision-Date: 2011-05-15 11:54\n"
+"Last-Translator:   <william@agencialivre.com.br>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Translated-Using: django-rosetta 0.6.1\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Chave API Akismet"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Obtenha um chave Wordpress em http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "Chave Pública ReCAPTCHA"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Obtenha em http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "Chave Privada ReCAPTCHA"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"Biblioteca Akismet não está instalada. Use \"easy_install akismet\" ou \"pip "
+"install akismet\"."
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "A Chave da API não é válida."
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"Biblioteca ReCAPTCHA não está instalada. Use \"easy_install recaptcha-client"
+"\" or \"pip install recaptcha-client\"."
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Formulário de Contato"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Proteção de Spam"
+
+#: cms_plugins.py:87
+msgid "No subject"
+msgstr "Sem assunto"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "E-mail de destino"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Rótulo de e-mail do remetente"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Seu endereço de e-mail"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Rótulo do assunto"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Assunto"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Rótulo do conteúdo da mensagem"
+
+#: models.py:23
+msgid "Message"
+msgstr "Mensagem"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Mensagem de agradecimento"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Mensagem exibida em caso de sucesso"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Obrigado for sua mensagem."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Nome do botão de envio"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Enviar"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Método de proteção de spam"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "Tema do ReCAPTCHA"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr ""
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr ""
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr ""
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr ""
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image."
+msgstr ""
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr ""
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Incorreto, por favor tente novamente"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Digita as palavras acima:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Digita os número que você ouvir:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Obter outro CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Obter um audio CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Obter uma imagem CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Ajuda"

cmsplugin_contact/locale/ru/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/ru/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Sergey.Voronezhskiy <Sergey.Voronezhskiy@gmail.com>, 2012.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 15:23+0200\n"
+"PO-Revision-Date: 2012-03-20 13:56+0400\n"
+"Last-Translator: Sergey.Voronezhskiy <Sergey.Voronezhskiy@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr "Akismet API Ключ"
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr "Создайте новый ключ на сайте http://akismet.com/"
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr "ReCAPTCHA Публичный ключ"
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr "Создайте новый ключ на сайте http://www.google.com/recaptcha"
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr "ReCAPTCHA Приватный ключ"
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+"Библиотека Akismet не установлена. Установите её с помощью \"easy_install akismet\" "
+"либо \"pip install akismet\""
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr "Неверный API ключ"
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+"Библиотека ReCAPTCHA не установлена. Установите её с помощью \"easy_install recaptcha-client\" "
+"либо \"pip install recaptcha-client\""
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr "Форма обратной связи"
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr "Защита от спама"
+
+#: cms_plugins.py:84
+msgid "No subject"
+msgstr "Без темы"
+
+#: models.py:20
+msgid "Email recipient"
+msgstr "E-mail адрес получателя"
+
+#: models.py:21
+msgid "Email sender label"
+msgstr "Надпись для поля email"
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Ваш E-mail адрес"
+
+#: models.py:22
+msgid "Subject label"
+msgstr "Надпись для поля subject"
+
+#: models.py:22
+msgid "Subject"
+msgstr "Тема"
+
+#: models.py:23
+msgid "Message content label"
+msgstr "Надпись для поля content"
+
+#: models.py:23
+msgid "Message"
+msgstr "Сообщение"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr "Благодарное сообщение"
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr "Сообщение о успешной отправки"
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Спасибо за Ваше сообщение."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr "Надпись на кнопке отправить"
+
+#: models.py:25
+msgid "Submit"
+msgstr "Отправить"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr "Метод защиты от спама"
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr "ReCAPTCHA тема"
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Пожалуйста не устанавливайте этот чекбокс"
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Пожалуйста введите два слова на картинке разделенные пробелом:"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Вы не ввели никаких слов."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Вы не ввели двух слва указанных на картинке"
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image"
+msgstr "Слова введенные вами не совпадают с указанными на картинке"
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Вы робот?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Неверно, пожалуста попробуйте снова"
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Введите слова указанные выше:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Введите числа которые вы услышали:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Поменять CAPTCHA на другую"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Прослушать звуковую CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Вывести изображение с CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Помощь"

cmsplugin_contact/locale/sl/LC_MESSAGES/django.mo

Binary file added.

cmsplugin_contact/locale/sl/LC_MESSAGES/django.po

+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-08-12 11:55+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.py:16
+msgid "Akismet API Key"
+msgstr ""
+
+#: admin.py:16
+msgid "Get a Wordpress Key from http://akismet.com/"
+msgstr ""
+
+#: admin.py:18
+msgid "ReCAPTCHA Public Key"
+msgstr ""
+
+#: admin.py:18 admin.py:19
+msgid "Get this from http://www.google.com/recaptcha"
+msgstr ""
+
+#: admin.py:19
+msgid "ReCAPTCHA Private Key"
+msgstr ""
+
+#: admin.py:36
+msgid ""
+"Akismet library is not installed. Use \"easy_install akismet\" or \"pip "
+"install akismet\"."
+msgstr ""
+
+#: admin.py:50
+msgid "The API Key is not valid."
+msgstr ""
+
+#: admin.py:58
+msgid ""
+"ReCAPTCHA library is not installed. Use \"easy_install recaptcha-client\" or "
+"\"pip install recaptcha-client\"."
+msgstr ""
+
+#: cms_plugins.py:17
+msgid "Contact Form"
+msgstr ""
+
+#: cms_plugins.py:25
+msgid "Spam Protection"
+msgstr ""
+
+#: cms_plugins.py:87
+msgid "No subject"
+msgstr ""
+
+#: models.py:20
+msgid "Email recipient"
+msgstr ""
+
+#: models.py:21
+msgid "Email sender label"
+msgstr ""
+
+#: models.py:21
+msgid "Your email address"
+msgstr "Naslov tvoje elektronske pošte"
+
+#: models.py:22
+msgid "Subject label"
+msgstr ""
+
+#: models.py:22
+msgid "Subject"
+msgstr "Zadeva"
+
+#: models.py:23
+msgid "Message content label"
+msgstr ""
+
+#: models.py:23
+msgid "Message"
+msgstr "Sporočilo"
+
+#: models.py:24
+msgid "Thanks message"
+msgstr ""
+
+#: models.py:24
+msgid "Message displayed on successful submit"
+msgstr ""
+
+#: models.py:24
+msgid "Thank you for your message."
+msgstr "Hvala za tvoje sporočilo."
+
+#: models.py:25
+msgid "Submit button value"
+msgstr ""
+
+#: models.py:25
+msgid "Submit"
+msgstr "Pošlji"
+
+#: models.py:27
+msgid "Spam protection method"
+msgstr ""
+
+#: models.py:33
+msgid "ReCAPTCHA theme"
+msgstr ""
+
+#: nospam/fields.py:13
+msgid "Please don't check this box."
+msgstr "Ne označi tega polja."
+
+#: nospam/forms.py:42
+msgid "Please enter the two words on the image separated by a space:"
+msgstr "Prepiši besedi prikazani na sliki, loči ju s presledkom:"
+
+#: nospam/forms.py:44
+msgid "You did not enter any of the words."
+msgstr "Nisi prepisal/a dveh besed prikazanih na sliki."
+
+#: nospam/forms.py:92
+msgid "You did not enter the two words shown in the image."
+msgstr "Nisi prepisal/a dveh besed prikazanih na sliki."
+
+#: nospam/forms.py:98
+msgid "The words you entered did not match the image."
+msgstr "Prepisani besedi se nista ujemali s sliko."
+
+#: nospam/widgets.py:30
+msgid "Are you a robot?"
+msgstr "Si robot?"
+
+#: templates/cmsplugin_contact/contact.html:39
+msgid "Incorrect please try again"
+msgstr "Nepravilno. Poskusi znova."
+
+#: templates/cmsplugin_contact/contact.html:42
+msgid "Enter the words above:"
+msgstr "Prepiši besedi odzgoraj:"
+
+#: templates/cmsplugin_contact/contact.html:43
+msgid "Enter the numbers you hear:"
+msgstr "Vnesi števila, ki jih slišiš:"
+
+#: templates/cmsplugin_contact/contact.html:48
+msgid "Get another CAPTCHA"
+msgstr "Ponudi drugo CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:49
+msgid "Get an audio CAPTCHA"
+msgstr "Ponudi zvočno CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:50
+msgid "Get an image CAPTCHA"
+msgstr "Ponudi slikovno CAPTCHA"
+
+#: templates/cmsplugin_contact/contact.html:52
+msgid "Help"
+msgstr "Pomoč"

cmsplugin_contact/migrations/0001_initial.py

+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        
+        # Adding model 'Contact'
+        db.create_table('cmsplugin_contact', (
+            ('cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)),
+            ('site_email', self.gf('django.db.models.fields.EmailField')(max_length=75)),
+            ('email_label', self.gf('django.db.models.fields.CharField')(default=u'Your email address', max_length=100)),
+            ('subject_label', self.gf('django.db.models.fields.CharField')(default=u'Subject', max_length=200)),
+            ('content_label', self.gf('django.db.models.fields.CharField')(default=u'Message', max_length=100)),
+            ('thanks', self.gf('django.db.models.fields.CharField')(default=u'Thank you for your message.', max_length=200)),
+            ('submit', self.gf('django.db.models.fields.CharField')(default=u'Submit', max_length=30)),
+            ('spam_protection_method', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('akismet_api_key', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('recaptcha_public_key', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('recaptcha_private_key', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('recaptcha_theme', self.gf('django.db.models.fields.CharField')(default='clean', max_length=20)),
+        ))