Commits

Artem Gluvchynsky committed 39bc4d9 Merge

Merged with trunk

Comments (0)

Files changed (121)

-*.pyc
 satchmo/static/images/productimage-picture-*_*.jpg
 brand*translation-picture-*.jpg
 bannerimage-*jpg
+syntax: glob
+build
+.DS_Store
+.build
+.project
+.pydevproject
+*.orig
+*.rej
+*~
+*.o
+*.pyo
+*.pyc
+_private
+*_local.py
+_LOCAL_FLAG
+_DEVELOPMENT_FLAG
+_temp
+test.db
+dist
+build
+*.egg-info
+*_85x85_*
+*_84x84_*
+\#*\#
+.*.sw?
+*.egg
+.hg
+
 *_85x85_*
 *_84x84_*
 \#*\#
+.*.sw?
+*.egg
+.git

docs/configuration.txt

 
 2. In addition to the Satchmo specific settings, there are some Django settings you will want to make sure are properly set:
 
-    - Make sure that your ``DATABASE_ENGINE`` variable is also set correctly.
+    - Make sure that your ``DATABASES['default']['ENGINE']`` variable is also set correctly.
     - You should ensure that all of your paths are setup correctly.  Key ones to look at are:
 
         + ``MEDIA_ROOT`` (this is where images will be stored)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Once your store is live, you may want to disable the admin ability to edit the site configuration.  To do this, edit your settings.py file and add a new entry ``LIVESETTINGS_OPTIONS`` with the settings you want to lock into place.
+The easiest way to get it is by the URL http://your.site/settings/export/.
 
 The ``LIVESETTINGS_OPTIONS`` must be formatted as follows::
 
     LIVESETTINGS_OPTIONS = {
         1 : {
-            'DB' : (True|False),
+            'DB' : False,   # or True for use db and ignore these settings
             'SETTINGS' : {
                 'GROUPKEY' : {
                     'KEY' : val,
 Double check your Satchmo sites domain name to make sure it matches the notification url above:
     9. Go to /admin/sites/site/ and make sure your domain name is the same as the one you configured about in PayPal. In the example above, under Sites put in mydomain.com
 
+There is one note to remember about using paypal with utf-8 characters. By default Paypal will send an IPN call encoded as cp-1252 which 
+will break when the payment module calls PayPal again in utf-8 and there are special characters in the call. The solution is to login to 
+PayPal and change the website encoding of your account on PayPal to utf-8 in your profile settings (bottom right link on the profile page).
+
 .. index:: Google Checkout
 
 Google Checkout
 Sage Pay (Formerly Protx)
 -------------------------
 This processor is included in the default Satchmo store.
+
+.. index:: Sermepa
+
+Sermepa
+-------
+This processor is included in the default Satchmo store. 
+

docs/release-notes-0-9-2.txt

 - UPS module will display actual shipping times
 - New template tag product_featured_list
 - New config option to allow users to create their username instead of automatically generating
+- Satchmo check now does a more thorough job of checking your environment for issues
 
 Translations
 ------------
 - Added Dutch translation
 - Added Czech translation
+- Updated French translation
 
 Bug Fixes
 ---------
 - Update Paypal IPN docs
 - Fix issue where inactive or out of stock products could be purchased if there was a time lag between cart addition and checkout
 - Cart template tag now allows show_discount
+- Several fixes to transaction management
+- Improve postgres syncdb support
+- UPS time in transit prevents weekend pickups
+- Payments weren't showing up correctly in admin
+- Multiple updates to the tests to make them more robust
+- Fix issue with persistent cart not working correctly
+- Updates and fixes to sermepa payment module
+- Fixes to syncdb
+- Fedex module API changes
+- Several fixes to handle unicode characters better
+- Replace some admin jquery scripts with simpler django readonly fields
 
 Performance Improvements
 ------------------------
 - Made a couple of view and template changes to reduce the number of SQL queries per page
 - Added db index on Price Lookup table
 
+Additional Packages
+-------------------
+We have also made several updates to satchmo's dependencies including:
+  - `livesettings <https://bitbucket.org/bkroeze/django-livesettings>`_ 
+  - `keyedcache <https://bitbucket.org/bkroeze/django-keyedcache>`_ 
+  - `django-caching-app-plugins <https://bitbucket.org/bkroeze/django-caching-app-plugins/>`_
+  
+You should upgrade these to the latest version when you upgrade your satchmo site.
 
 Migration Notes
 ---------------
     
     python manage.py migrate product
     
+Support for Django 1.3
+++++++++++++++++++++++
+As mentioned above, when using Django 1.3, it is important to upgrade `django-caching-app-plugins <https://bitbucket.org/bkroeze/django-caching-app-plugins/>`_ (app_plugins) to version 0.1.2.
+
+Active Products
++++++++++++++++
+Previously, category.active_products() would not consistently return the correct product variations. In `rev 2168 <https://bitbucket.org/chris1610/satchmo/changeset/318f7eb41140>`_
+this was fixed but had the unintended side effect of returning all the product variations in the default templates. In order to maintain
+consistency, the default variation display value is now False. The only people that will notice the issue is those that customized
+the variation display in the category page.

docs/settings.txt

     especially important for MySQL. If you are using MySQL, you may want to use the
     following statement in your settings file to enforce utf-8 collation::
 
-        DATABASE_OPTIONS = {
+        DATABASES['default']['OPTIONS'] = {
            'init_command' : 'SET NAMES "utf8"',
            }
 

satchmo/apps/l10n/locale/fr/LC_MESSAGES/django.mo

Binary file modified.

satchmo/apps/l10n/locale/fr/LC_MESSAGES/django.po

 "X-Poedit-SourceCharset: utf-8\n"
 
 #: admin.py:15 admin.py:24
-#, fuzzy
 msgid "1 country was"
-msgstr "Nom du pays"
+msgstr "Un pays a été"
 
 #: admin.py:17 admin.py:26
-#, fuzzy, python-format
+#, python-format
 msgid "%s countries were"
-msgstr "Pays"
+msgstr "%s pays ont été"
 
 #: admin.py:18
 #, python-format
 msgid "%s successfully marked as active"
-msgstr ""
+msgstr "%s correctement marqué comme actif(s)"
 
 #: admin.py:19
 msgid "Mark selected countries as active"
-msgstr ""
+msgstr "Marquer les pays sélectionnés comme actifs"
 
 #: admin.py:27
 #, python-format
 msgid "%s successfully marked as inactive"
-msgstr ""
+msgstr "%s correctement marqué comme inactif(s)"
 
 #: admin.py:28
 msgid "Mark selected countries as inactive"
-msgstr ""
+msgstr "Marquer les pays sélectionnés comme inactifs"
 
 #: models.py:6
 msgid "Africa"
 
 #: models.py:29
 msgid "Governorate"
-msgstr "Gouvernemental"
+msgstr "Governorat"
 
 #: models.py:30
 msgid "Island council"
 
 #: models.py:41
 msgid "State"
-msgstr "Département/Province"
+msgstr "État/Département/Région"
 
 #: models.py:42
 msgid "Subdivision"
 
 #: models.py:57
 msgid "ISO numeric"
-msgstr "ISO numeric"
+msgstr "Code ISO numérique"
 
 #: models.py:58
 msgid "Country is active"
-msgstr "pays actif"
+msgstr "Pays actif"
 
 #: models.py:59
 msgid "Continent"
 
 #: templates/l10n/_language_selection_form.html:5
 msgid "Change language"
-msgstr ""
+msgstr "Changer de langue"
 
 #: templates/l10n/_language_selection_form.html:11
 msgid "Change"
-msgstr ""
+msgstr "Modifier"
 
 #: validators/aupostcode.py:13
 msgid "Invalid Australian postal code"
-msgstr ""
+msgstr "Code postal australien invalide"
 
 #: validators/capostcode.py:18
 msgid "Invalid postal code for Canada"
-msgstr ""
+msgstr "Code postal canadien invalide"
 
 #: validators/uspostcode.py:10
 msgid "Invalid ZIP code"
-msgstr ""
+msgstr "Code postal invalide"

satchmo/apps/payment/fields.py

-from django.db import models
-from payment.config import credit_choices, labelled_gateway_choices
-
-class CreditChoiceCharField(models.CharField):
-
-    def __init__(self, *args, **kwargs):
-        choices = kwargs.pop("choices", "__DYNAMIC__")
-        if choices == "__DYNAMIC__":
-            kwargs['choices'] = credit_choices()
-
-        super(CreditChoiceCharField, self).__init__(*args, **kwargs)
-
-class PaymentChoiceCharField(models.CharField):
-    
-    def __init__(self, *args, **kwargs):
-        choices = kwargs.pop("choices", "__DYNAMIC__")
-        if choices == "__DYNAMIC__":
-            kwargs['choices'] = labelled_gateway_choices()
-                    
-        super(PaymentChoiceCharField, self).__init__(*args, **kwargs)
-
-try:
-    # South introspection rules for our custom field.
-    from south.modelsinspector import add_introspection_rules, matching_details
-
-    # get the kwargs for a Field instance
-    # we're using Field, as CharField doesn't change __init__()
-    _args, kwargs = matching_details(models.Field())
-
-    add_introspection_rules([(
-        (CreditChoiceCharField, ),
-        [],
-        kwargs,
-    )], ['payment\.fields\.CreditChoiceCharField'])
-    add_introspection_rules([(
-        (PaymentChoiceCharField, ),
-        [],
-        kwargs,
-    )], ['payment\.fields\.PaymentChoiceCharField'])
-except ImportError:
-    pass

satchmo/apps/payment/locale/da/LC_MESSAGES/django.po

 #: templates/shop/checkout/purchaseorder/confirm.html:15
 #, python-format
 msgid "This order will be charged on your account for %(order_total)s."
-msgstr "Denne ordre debiteres din konto for %(ordre_total)s."
+msgstr "Denne ordre debiteres din konto for %(order_total)s."
 
 #: templates/shop/checkout/purchaseorder/pay_ship.html:9
 msgid "Purchase Order #"

satchmo/apps/payment/locale/fr/LC_MESSAGES/django.mo

Binary file modified.

satchmo/apps/payment/locale/fr/LC_MESSAGES/django.po

 
 #: config.py:26
 msgid "Allow URL Access to Cron for subscription rebills"
-msgstr "Permettre l'accès à l'URL Cron pour renouvellement de souscription"
+msgstr "Permettre l'accès à l'URL Cron pour renouvellement d'abonnements"
 
 #: config.py:27
 msgid "Do you want to allow remote url calls for subscription billing?"
-msgstr "Voulez-vous permettre l'appel d'URL externe pour les souscriptions?"
+msgstr ""
+"Voulez-vous permettre l'appel d'URL externe pour la facturation des "
+"abonnements ?"
 
 #: config.py:34 modules/authorizenet/config.py:40
 #: modules/autosuccess/config.py:11 modules/cod/config.py:19
 "off to force all payments into test mode."
 msgstr ""
 "Décoché si vous voulez rester en mode Test. Force tous les paiements en mode "
-"Test"
+"Test."
 
 #: config.py:42
 msgid "Email owner?"
-msgstr "Envoyer un email au propriétaire?"
+msgstr "Envoyer un email à la boutique ?"
 
 #: config.py:43
 msgid "True if you want to email the owner on order"
 msgstr ""
-"Coché si vous souhaitez envoyer un email au propriétaire lors d'une commande"
+"Coché si vous souhaitez envoyer un email au contact de la boutique lors d'une "
+"commande"
 
 #: config.py:50
-msgid "Extra order emails?"
+msgid "Extra order emails ?"
 msgstr "Autres adresses email pour une commande"
 
 #: config.py:52
 "Put all email addresses you want to email in addition to the owner when an "
 "order is placed."
 msgstr ""
-"Ajoutez toutes les adresses email souhaitées en plus de celle du "
-"propriétaire lorsqu'une commande est placée."
+"Ajoutez toutes les adresses email à contacter en plus de celle du "
+"contact de la boutique lors d'une commande."
 
 #: config.py:60 modules/dummy/config.py:64
 msgid "Early AUTH"
-msgstr ""
+msgstr "Authentification au plus tôt"
 
 #: config.py:61
 msgid ""
 "only supported for payment modules that can do Authorizations.  It will be "
 "silently ignored for any other processors."
 msgstr ""
+"Si possible, authentifie la carte sur la page de saisie de la carte. Cela "
+"cause un débit de 0.01$ suivi immétidatement d'un recrédit, permettant aux "
+"erreurs liées à la carte d'apparaître directement sur cette page. Notez que "
+"cela n'est supporté que par les modules de paiement permettant l'"
+"authentification, et sera ignoré en silence par les autres modules"
 
 #: config.py:66
 msgid "Country match required?"
-msgstr "Correspondance de pays requise?"
+msgstr "Correspondance de pays requise ?"
 
 #: config.py:67
 msgid ""
 "    It does not set SSL for individual modules. \n"
 "    You must enable SSL for each payment module individually."
 msgstr ""
-"Ceci active pour les pages génériques comme la saisie d'information du "
+"Ceci active le ssl pour les pages génériques comme la saisie d'information du "
 "contact.\n"
 "Cà n'active pas le SSL pour les modules individuels. \n"
 "Vous devez activer le SSL pour chaque module de paiement individuellement. "
 
 #: config.py:80
 msgid "Minimum Order"
-msgstr "Valeur minimum de la commande"
+msgstr "Montannt minimum de commande"
 
 #: config.py:81
 msgid "The minimum cart total before checkout is allowed."
 msgstr "Le montant minimum requis pour accepter une commande."
 
 #: config.py:86
-#, fuzzy
 msgid "Save Credit Card Numbers"
-msgstr "Cartes de crédit"
+msgstr "Enregistrer les numéros de cartes"
 
 #: config.py:87
 msgid ""
 "compliance, this is required unless you have your database server on a "
 "separate server not connected to the internet."
 msgstr ""
+"Si décoché, les numéros de cartes ne seront jamais stockés. C'est "
+"obligatoire pour la comformité PCI à moins que votre serveur de base de "
+"données soit séparé et non connecté à internet."
 
 #: config.py:92
 msgid "Number of years to display for CC expiration"
-msgstr ""
+msgstr "Nombre d'années à afficher pour la date d'expiration de la carte"
 
 #: config.py:93
 msgid ""
 "Number of years that will be added to today's year for the CC expiration "
 "drop down"
-msgstr ""
+msgstr "Nombre d'années qui seront ajoutées à l'année en cours pour "
+"la date d'expiration de la carte"
 
 #: config.py:98
-#, fuzzy
 msgid "Use discounts"
-msgstr "Remise invalide."
+msgstr "Utiliser les réductions"
 
 #: config.py:99
 msgid "If disabled, customers will not be asked for any discount codes."
-msgstr ""
+msgstr "Si décochée, aucun code de réduction ne sera demandé aux clients."
 
 #: forms.py:103
 msgid "Discount"
-msgstr ""
+msgstr "Réduction"
 
 #: forms.py:156
 msgid "New price"
 
 #: forms.py:157
 msgid "Shipping adjustment"
-msgstr "Ajustement de la livraison"
+msgstr "Ajustement des frais de livraison"
 
 #: forms.py:158 modules/giftcertificate/models.py:102
 #: modules/purchaseorder/models.py:14
 #: forms.py:174 templates/shop/checkout/balance_remaining.html:23
 #: templates/shop/checkout/form.html:58
 msgid "Payment method"
-msgstr "Méthode de paiement"
+msgstr "Moyen de paiement"
 
 #: forms.py:249
-#, fuzzy
 msgid "This field is required"
-msgstr "Ce champ est requis."
+msgstr "Ce champ est requis"
 
 #: forms.py:252
 msgid "Selected payment method requires this field to be filled"
-msgstr ""
+msgstr "Le moyen de paiement choisi nécessite que ce champ soit rempli"
 
 #: forms.py:274
-#, fuzzy
 msgid "Invalid discount code."
-msgstr "Remise invalide."
+msgstr "Code de réduction invalide."
 
 #: forms.py:366
 msgid "This field is required."
-msgstr "Ce champ est requis."
+msgstr "Ce champ est obligatoire."
 
 #: forms.py:501
 msgid "Your card has expired."
-msgstr "Votre panier a expiré"
+msgstr "Votre carte a expiré."
 
 #: forms.py:510
 msgid "Invalid ccv."
-msgstr "CCV invalide."
+msgstr "Code CCV invalide."
 
 #: listeners.py:19
 msgid "terms and conditions"
-msgstr ""
+msgstr "conditions générales"
 
 #: listeners.py:21
 #, python-format
 msgid "Do you accept the %(terms_link)s?"
-msgstr ""
+msgstr "Acceptez-vous les %(terms_link)s ?"
 
 #: models.py:29
 msgid "Description"
 
 #: models.py:31
 msgid "Should this be displayed as an option for the user?"
-msgstr "Ce mode de paiement doit-il être proposé à l'utilisateur ?"
+msgstr "Ce moyen de paiement doit-il être proposé à l'utilisateur ?"
 
 #: models.py:32
 msgid "Option Name"
 
 #: models.py:35
 msgid "Sort Order"
-msgstr "Ordre de tri"
+msgstr "Ordre d'affichage"
 
 #: models.py:38
 msgid "Payment Option"
 
 #: models.py:48
 msgid "Credit Card Type"
-msgstr "Type de carte de crédit"
+msgstr "Type de carte"
 
 #: models.py:49
 msgid "CC Number (Last 4 digits)"
-msgstr "Numéro de CB (4 derniers chiffres)"
+msgstr "Numéro de carte (4 derniers chiffres)"
 
 #: models.py:51
 msgid "Encrypted Credit Card"
-msgstr "Numéro crypté de la CC"
+msgstr "Numéro crypté de la carte"
 
 #: models.py:53
 msgid "Expiration Month"
 
 #: models.py:108
 msgid "Credit Cards"
-msgstr "Cartes de crédit"
+msgstr "Cartes de paiement"
 
 #: modules/base.py:48 modules/base.py:80 modules/base.py:85
 #: modules/base.py:181
 msgid "Not Implemented"
-msgstr ""
+msgstr "Non implémenté"
 
 #: modules/base.py:382 modules/autosuccess/processor.py:21
 #: modules/cod/processor.py:26 modules/dummy/processor.py:44
 #: modules/dummy/processor.py:85 modules/giftcertificate/processor.py:52
 #: modules/purchaseorder/processor.py:31 views/confirm.py:254
 msgid "Success"
-msgstr "Succes"
+msgstr "Succès"
 
 #: modules/base.py:384
 msgid "Failure"
-msgstr ""
+msgstr "Échec"
 
 #: modules/authorizenet/config.py:6 modules/cybersource/config.py:6
 #: modules/protx/config.py:6 modules/trustcommerce/config.py:5
 msgid "CreditCard"
-msgstr "Carte de crédit"
+msgstr "Carte de paiement"
 
 #: modules/authorizenet/config.py:9
 msgid "Authorize.net Payment Settings"
-msgstr "Paramètres de paiement Authorise.net"
+msgstr "Paramètres de paiement Authorize.net"
 
 #: modules/authorizenet/config.py:16
 msgid "Submit to URL"
 #: modules/giftcertificate/config.py:14 modules/protx/config.py:48
 #: modules/purchaseorder/config.py:45 modules/trustcommerce/config.py:27
 msgid "Use SSL for the checkout pages?"
-msgstr "Utiliser SSL pour les pages de validation des commandes?"
+msgstr "Utiliser SSL pour les pages de validation des commandes ?"
 
 #: modules/authorizenet/config.py:41
 msgid ""
 "If you use that number and a ccv of 222, that will force a bad ccv response "
 "from authorize.net"
 msgstr ""
+"Décoché si vous voulez soumettre aux urls de test. Note : si vous testez, "
+"utilisez la carte numéro 4222222222222 pour obtenir une réponse de type "
+"mauvaise carte. Ce même numéro utilisé avec le code CCV 222 donnera une "
+"réponse de type mauvais code"
 
 #: modules/authorizenet/config.py:46
 msgid "Force a test post?"
-msgstr ""
+msgstr "Forcer un test ?"
 
 #: modules/authorizenet/config.py:47
 msgid ""
 "True if you want to submit to the live url using a test flag, which won't be "
 "accepted."
 msgstr ""
+"Coché si vous voulez soumettre à l'url en ligne en utilisant un flag de test, "
+"ce qui ne sera pas accepté"
 
 #: modules/authorizenet/config.py:52 modules/autosuccess/config.py:17
 #: modules/cod/config.py:26 modules/cybersource/config.py:39
 #: modules/dummy/config.py:48 modules/protx/config.py:71
 #: modules/trustcommerce/config.py:63
 msgid "Available credit cards"
-msgstr "Cartes de crédit disponibles"
+msgstr "Cartes de paiement disponibles"
 
 #: modules/authorizenet/config.py:85
 msgid "Your authorize.net transaction login"
-msgstr "Votre login pour transaction authorize.net"
+msgstr "Votre login de transaction authorize.net"
 
 #: modules/authorizenet/config.py:90
 msgid "Your authorize.net transaction key"
-msgstr "Votre clé pour transaction authorize.net"
+msgstr "Votre clé de transaction authorize.net"
 
 #: modules/authorizenet/config.py:95 modules/dummy/config.py:58
-#, fuzzy
 msgid "Capture Payment immediately?"
-msgstr "Encaisser le paiement?"
+msgstr "Encaisser le paiement immédiatement ?"
 
 #: modules/authorizenet/config.py:97 modules/dummy/config.py:60
 msgid ""
 "IMPORTANT: If false, a capture attempt will be made when the order is marked "
 "as shipped.\""
 msgstr ""
+"IMPORTANT: Si décoché, une tentative d'encaissement ne sera effectuée que "
+"quand la commande sera marquée comme livrée.\""
 
 #: modules/authorizenet/config.py:101 modules/autosuccess/config.py:40
 #: modules/cod/config.py:49 modules/cybersource/config.py:88
 #: modules/google/config.py:107 modules/paypal/config.py:82
 #: modules/protx/config.py:110 modules/sermepa/config.py:164
 #: modules/trustcommerce/config.py:83
-#, fuzzy
 msgid "Verbose logs"
-msgstr "Logs des événements détaillés?"
+msgstr "Logs des événements détaillés"
 
 #: modules/authorizenet/config.py:102 modules/autosuccess/config.py:41
 #: modules/cod/config.py:50 modules/cybersource/config.py:89
 #: modules/protx/config.py:111 modules/sermepa/config.py:165
 #: modules/trustcommerce/config.py:84
 msgid "Add extensive logs during post."
-msgstr ""
+msgstr "Ajouter des logs pendant l'envoi."
 
 #: modules/authorizenet/config.py:109
-#, fuzzy
 msgid "Enable ARB?"
-msgstr "Activer SSL"
+msgstr "Activer ARB ?"
 
 #: modules/authorizenet/config.py:111
 msgid ""
 "Enable ARB processing for setting up subscriptions.  You must have this "
 "enabled in your Authorize account for it to work."
 msgstr ""
+"Active la gestion ARB pour la mise en place des abonnements. Cela doit "
+"être activé dans votre compte Authorize.net pour que cela fonctionne."
 
 #: modules/authorizenet/config.py:116
-#, fuzzy
 msgid "Submit to URL (ARB)"
-msgstr "Soumettre à l'URL"
+msgstr "Soumettre à l'URL (ARB)"
 
 #: modules/authorizenet/config.py:117
-#, fuzzy
 msgid "This is the address to submit live transactions for ARB."
-msgstr "Ceci est l'adresse pour soumettre les transactions."
+msgstr "Ceci est l'adresse pour soumettre les transactions pour ARB."
 
 #: modules/authorizenet/config.py:124
-#, fuzzy
 msgid "Submit to Test URL (ARB)"
-msgstr "Soumettre à l'URL de Test"
+msgstr "Soumettre à l'URL de Test (ARB)"
 
 #: modules/authorizenet/config.py:125
-#, fuzzy
 msgid "This is the address to submit test transactions for ARB."
-msgstr "Ceci est l'adresse pour soumettre les transactions."
+msgstr "Ceci est l'adresse pour soumettre les transactions pour ARB."
 
 #: modules/authorizenet/processor.py:37 modules/authorizenet/processor.py:87
 #: modules/cybersource/processor.py:109 modules/protx/processor.py:138
 #: modules/trustcommerce/processor.py:88
 msgid "No charge needed, paid in full."
-msgstr ""
+msgstr "Pas de frais, paiement intégral."
 
 #: modules/authorizenet/processor.py:61
 msgid "Already complete"
-msgstr ""
+msgstr "Déjà complété"
 
 #: modules/authorizenet/processor.py:437 modules/authorizenet/processor.py:500
 msgid "Could not talk to Authorize.net gateway"
-msgstr ""
+msgstr "Impossible de joindre la passerelle Authorize.net"
 
 #: modules/autosuccess/config.py:5
 msgid "Payment Auto Success Module Settings"
 #: modules/google/config.py:73 modules/paypal/config.py:48
 #: modules/sermepa/config.py:157
 msgid "Use SSL for the module checkout pages?"
-msgstr "Utiliser SSL pour le module des pages de validation?"
+msgstr "Utiliser SSL pour le module des pages de validation ?"
 
 #: modules/cybersource/config.py:9
 msgid "Cybersource.net Payment Settings"
 #: modules/cybersource/config.py:57 modules/google/config.py:21
 #: modules/paypal/config.py:12 modules/protx/config.py:99
 msgid "Currency Code"
-msgstr "Code de la devise"
+msgstr "Code devise"
 
 #: modules/cybersource/config.py:58
 msgid "Currency code for Cybersource transactions."
 
 #: modules/cybersource/config.py:78
 msgid "Your Cybersource merchant ID"
-msgstr "Votre identifiant vendeur à Cybersource"
+msgstr "Votre identifiant vendeur Cybersource"
 
 #: modules/cybersource/config.py:83
 msgid "Your Cybersource transaction key"
-msgstr "Votre clé de transaction à Cybersource"
+msgstr "Votre clé de transaction Cybersource"
 
 #: modules/dummy/config.py:8
 msgid "Payment Test Module Settings"
-msgstr "Paramètres du module de paiement Test"
+msgstr "Paramètres du module de paiement de test"
 
 #: modules/dummy/config.py:65
 msgid ""
 "Authenticate on the card entry page, causes an immediate $.01 AUTH and "
 "release, allowing errors with the card to show on the card entry page."
 msgstr ""
+"L'authentification sur la page de saisie de la carte cause un débit "
+"de 0.01$ suivi immétidatement d'un recrédit, permettant aux erreurs "
+"liées à la carte d'apparaître directement sur cette page."
 
 #: modules/dummy/processor.py:36
 msgid "Bad CCV - order declined"
-msgstr ""
+msgstr "Mauvais code CCV - paiement refusé"
 
 #: modules/dummy/processor.py:41
 msgid "Bad credit card number - order declined"
-msgstr ""
+msgstr "Mauvais numéro de carte - paiement refusé"
 
 #: modules/giftcertificate/config.py:6 modules/giftcertificate/models.py:96
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:7
 #: modules/giftcertificate/templates/giftcertificate/balance.html:13
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:9
 msgid "Gift Certificate"
-msgstr ""
+msgstr "Bon cadeau"
 
 #: modules/giftcertificate/config.py:9
 msgid "Gift Certificate Settings"
-msgstr ""
+msgstr "Paramètres des bons cadeaux"
 
 #: modules/giftcertificate/config.py:19
 msgid "Character Set"
-msgstr ""
+msgstr "Jeu de caractères"
 
 #: modules/giftcertificate/config.py:21
 msgid ""
 "The characters allowable in randomly-generated certficate codes.  No vowels "
 "means no unfortunate words."
 msgstr ""
+"Les caractères autorisés dans les numéros de bons générés aléatoirement. Pas "
+"de voyelle implique des mots compliqués à deviner."
 
 #: modules/giftcertificate/config.py:31
 msgid "Code format"
-msgstr ""
+msgstr "Format du code"
 
 #: modules/giftcertificate/config.py:33
 msgid ""
 "Enter the format for your cert code.  Use a '^' for the location of a "
 "randomly generated character."
 msgstr ""
+"Entrez le format pour vos codes. Utilisez un '^' à chaque endroit où se "
+"trouvera un caractère choisi aléatoirement"
 
 #: modules/giftcertificate/forms.py:6
 msgid "Code"
-msgstr ""
+msgstr "Code"
 
 #: modules/giftcertificate/models.py:31
 msgid "Site"
-msgstr ""
+msgstr "Site"
 
 #: modules/giftcertificate/models.py:32 modules/purchaseorder/models.py:30
-#, fuzzy
 msgid "Order"
-msgstr "Ordre de tri"
+msgstr "Commande"
 
 #: modules/giftcertificate/models.py:33
 msgid "Certificate Code"
-msgstr ""
+msgstr "Code du bon cadeau"
 
 #: modules/giftcertificate/models.py:35
 msgid "Purchased by"
-msgstr ""
+msgstr "Acheté par"
 
 #: modules/giftcertificate/models.py:37
 msgid "Date added"
-msgstr ""
+msgstr "Date d'ajout"
 
 #: modules/giftcertificate/models.py:38
-#, fuzzy
 msgid "Valid"
-msgstr "Payé"
+msgstr "Valide"
 
 #: modules/giftcertificate/models.py:39
 msgid "Message"
-msgstr ""
+msgstr "Message"
 
 #: modules/giftcertificate/models.py:40
-#, fuzzy
 msgid "Email"
-msgstr "Petit"
+msgstr "Email"
 
 #: modules/giftcertificate/models.py:41
-#, fuzzy
 msgid "Starting Balance"
-msgstr "Solde restant dû"
+msgstr "Solde initial"
 
 #: modules/giftcertificate/models.py:97
 #: modules/giftcertificate/templates/giftcertificate/balance.html:6
 msgid "Gift Certificates"
-msgstr ""
+msgstr "Bons cadeaux"
 
 #: modules/giftcertificate/models.py:101
 msgid "Date of usage"
-msgstr ""
+msgstr "Date d'utilisation"
 
 #: modules/giftcertificate/models.py:103
 msgid "Amount Used"
-msgstr ""
+msgstr "Montant utilisé"
 
 #: modules/giftcertificate/models.py:105
-#, fuzzy
 msgid "Order Payment"
-msgstr "Encaisser le paiement?"
+msgstr "Paiement de commande"
 
 #: modules/giftcertificate/models.py:106
 msgid "Used by"
-msgstr ""
+msgstr "Utilisé par"
 
 #: modules/giftcertificate/models.py:123
 msgid "Product"
-msgstr ""
+msgstr "Produit"
 
 #: modules/giftcertificate/models.py:161
 msgid "Gift certificate product"
-msgstr ""
+msgstr "Produit avecbon cadeau"
 
 #: modules/giftcertificate/models.py:162
 msgid "Gift certificate products"
-msgstr ""
+msgstr "Produits avec bons cadeaux"
 
 #: modules/giftcertificate/processor.py:30
 msgid "No balance to pay"
-msgstr ""
+msgstr "Rien à payer"
 
 #: modules/giftcertificate/processor.py:41
 msgid "No such Gift Certificate"
-msgstr ""
+msgstr "Ce bon cadeau n'existe pas"
 
 #: modules/giftcertificate/processor.py:46
 msgid "Bad Gift Certificate"
-msgstr ""
+msgstr "Mauvais bon cadeau"
 
 #: modules/giftcertificate/processor.py:56
 #, python-format
 msgid "%s balance remains after gift certificate was applied"
-msgstr ""
+msgstr "Il reste un solde de %s après l'utilisation du bon cadeau"
 
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:5
 msgid "Gift Certificate Codes"
-msgstr ""
+msgstr "Codes des bons cadeaux"
 
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:10
 #, python-format
 msgid "To: %(recipient)s"
-msgstr ""
+msgstr "Ã : %(recipient)s"
 
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:15
-#, fuzzy, python-format
+#, python-format
 msgid "Starting Balance: %(start_balance)s"
-msgstr "Solde = %(balance)s "
+msgstr "Solde initial : %(start_balance)s "
 
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:19
 #, python-format
 msgid "Code: %(code)s"
-msgstr ""
+msgstr "Code : %(code)s"
 
 #: modules/giftcertificate/templates/giftcertificate/_order_summary.html:24
 #, python-format
 msgid "Message: %(message)s"
-msgstr ""
+msgstr "Message : %(message)s"
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:5
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:9
 #: templates/shop/checkout/protx/confirm.html:9
 #: templates/shop/checkout/purchaseorder/confirm.html:7
 msgid "Home"
-msgstr ""
+msgstr "Accueil"
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:15
 msgid "Purchased on:"
-msgstr ""
+msgstr "Acheté le :"
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:21
-#, fuzzy
 msgid "Starting Balance:"
-msgstr "Solde restant dû"
+msgstr "Solde initial :"
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:22
 msgid "Current Balance:"
-msgstr ""
+msgstr "Solde courant :"
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:25
 msgid "No such gift certificate found."
-msgstr ""
+msgstr "Ce bon cadeau n'a pas été trouvé."
 
 #: modules/giftcertificate/templates/giftcertificate/balance.html:30
 msgid "Look up balance"
-msgstr ""
+msgstr "Calculer le solde"
 
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:11
 msgid "Price"
-msgstr ""
+msgstr "Prix"
 
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:21
 msgid "Quantity (multiply the gift certificate by this amount)"
-msgstr ""
+msgstr "Quantité (multiplier le bon cadeau par ce montant)"
 
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:24
 msgid "Recipient Email (optional):"
-msgstr ""
+msgstr "Email du destinataire (facultatif) :"
 
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:25
 msgid "Message (optional):"
-msgstr ""
+msgstr "Message (facultatif) :"
 
 #: modules/giftcertificate/templates/product/detail_giftcertificateproduct.html:30
 msgid "Add to cart"
-msgstr ""
+msgstr "Ajouter au panier"
 
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:10
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/confirm.html:10
 #: templates/shop/checkout/protx/confirm.html:10
 #: templates/shop/checkout/purchaseorder/confirm.html:8
 msgid "Checkout"
-msgstr ""
+msgstr "Validation de la commande"
 
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:14
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/confirm.html:14
 #: templates/shop/checkout/purchaseorder/confirm.html:12
 #: templates/shop/checkout/sermepa/confirm.html:6
 #: templates/shop/checkout/sermepa/confirm.html:9
-#, fuzzy
 msgid "Payment"
-msgstr "Option de paiement"
+msgstr "Paiement"
 
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:20
 #, python-format
 msgid "Order total: %(orderbalance)s"
-msgstr ""
+msgstr "Montant total : %(orderbalance)s"
 
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:21
 #, python-format
 "You are about to use Gift certificate #%(giftcode)s which has %(certbalance)"
 "s total available to pay for your order."
 msgstr ""
+"Vous êtes sur le point d'utiliser le bon cadeau N°%(giftcode)s qui permet "
+" de payer %(certbalance)s de votre commande."
 
 #: modules/giftcertificate/templates/shop/checkout/confirm.html:22
 msgid ""
 "to select another form of payment for the balance after you use this gift "
 "certificate."
 msgstr ""
+"Si le bon cadeau ne suffit par pour couvrir la totalité de votre commande, "
+"vous pourrez choisir un autre moyen de paiement une fois ce bon cadeau "
+"utilisé."
 
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/confirm.html:6
-#, fuzzy
 msgid "Please Note:"
-msgstr "Choisissez SVP"
+msgstr "Veuillez noter :"
 
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/confirm.html:19
 #, python-format
 "About to use your gift certificate: %(giftcode)s, which has a balance of %"
 "(balance)s."
 msgstr ""
+"Vous êtes sur le point d'utliser le bon cadeau #%(giftcode)s, dont le solde "
+"est de %(balance)s."
 
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/confirm.html:23
 msgid "About to use INVALID gift certificate"
-msgstr ""
+msgstr "Vous êtes sur le point d'utiliser un bon cadeau INVALIDE"
 
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/pay_ship.html:6
 #: templates/shop/checkout/pay_ship.html:6
 #: templates/shop/checkout/protx/pay_ship.html:18
-#, fuzzy
 msgid "Payment Information"
-msgstr "Option de paiement"
+msgstr "Informations de paiement"
 
 #: modules/giftcertificate/templates/shop/checkout/giftcertificate/pay_ship.html:11
 msgid "Gift Certificate Code"
-msgstr ""
+msgstr "Code du bon cadeau"
 
 #: modules/google/config.py:8
 msgid "Google Checkout Module Settings"
 
 #: modules/google/config.py:15
 msgid "XML Template"
-msgstr "Canevas XML"
+msgstr "Template XML"
 
 #: modules/google/config.py:16
 msgid ""
 "The XML template to use when submitting to Google. Probably you should not "
 "change this."
 msgstr ""
-"Le canevas XML à utiliser pour Google. Vous ne devrez probablement rien y "
+"Template XML à utiliser pour Google. Vous ne devrez probablement rien y "
 "changer."
 
 #: modules/google/config.py:22
 
 #: modules/google/config.py:36
 msgid "Large"
-msgstr "Large"
+msgstr "Grand"
 
 #: modules/google/config.py:41 modules/google/config.py:47
 #: modules/paypal/config.py:18 modules/paypal/config.py:24
 
 #: modules/google/notifications.py:48
 msgid "Received through Google Checkout."
-msgstr ""
+msgstr "Reçu via Google Checkout."
 
 #: modules/google/notifications.py:69
-#, fuzzy
 msgid "Paid through Google Checkout."
-msgstr "Payé au moyen de Paypal"
+msgstr "Payé via Google Checkout."
 
 #: modules/google/notifications.py:80
 msgid "Shipped through Google Checkout."
-msgstr ""
+msgstr "Livré via Google Checkout."
 
 #: modules/google/views.py:133 views/checkout.py:15
 msgid "Your order has already been processed."
 
 #: modules/paypal/config.py:31
 msgid "The email address for your paypal account"
-msgstr "L'adresse email pour votre compte Paypal"
+msgstr "L'adresse email de votre compte Paypal"
 
 #: modules/paypal/config.py:36
 msgid "Paypal test account email"
-msgstr "Email compte de test Paypal"
+msgstr "Email du compte Paypal de test"
 
 #: modules/paypal/config.py:37
 msgid "The email address for testing your paypal account"
-msgstr "L'adresse email pour tester votre compte Paypal"
+msgstr "L'adresse email de votre compte Paypal de test"
 
 #: modules/paypal/config.py:42
 msgid "Return URL"
 "can be a named url and defaults to the standard checkout success."
 msgstr ""
 "Où Paypal va renvoyer le client lorsque l'achat est terminé. Cà peut être "
-"une URL nommée et par défaut retourne à validation acceptée."
+"une URL nommée. Par défaut retourne à la page standard de réussite de "
+"paiement."
 
 #: modules/paypal/views.py:48 modules/sermepa/views.py:69 views/confirm.py:211
 msgid "Your order is no longer valid."
 
 #: modules/paypal/views.py:142
 msgid "Paid through PayPal."
-msgstr "Payé au moyen de Paypal"
+msgstr "Payé via de Paypal."
 
 #: modules/paypal/views.py:152
 msgid "---Comment via Paypal IPN---"
-msgstr "---Commentaire via IPN Paypal---"
+msgstr "---Commentaire via Paypal IPN---"
 
 #: modules/protx/config.py:6
 msgid "Prot/X Secure Payments"
 
 #: modules/protx/config.py:25
 msgid "Simulated Transactions?"
-msgstr "Transactions simulées?"
+msgstr "Transactions simulées ?"
 
 #: modules/protx/config.py:26
 msgid "Must be false to accept real payments"
 
 #: modules/protx/config.py:31
 msgid "Skip post?"
-msgstr ""
+msgstr "Ne pas envoyer ?"
 
 #: modules/protx/config.py:32
 msgid ""
 "is because their servers restrict IPs of posting servers, even for tests.  "
 "If you are developing on a desktop, you'll have to enable this."
 msgstr ""
+"Pour tester uniquement, cela n'enverra rien aux serveurx Prot/x. Cela car "
+"leurs serveurs restreignent les IPs des serveurs émetteurs, même pour les "
+"tests. Si vous développez en local, vous devez l'activer."
 
 #: modules/protx/config.py:37
 msgid "Payment Capture"
 "This is used for Live and Test transactions.  Make sure to add your server "
 "IP address to VSP, or it won't work."
 msgstr ""
+"Utilisé pour les transactions de test ET réelles. Soyez sûr d'avoir indiqué "
+"l'adresse IP de votre serveur à VSP ou cela ne marchera pas."
 
 #: modules/protx/config.py:93
-#, fuzzy
 msgid "Simulator Vendor Name"
-msgstr "Votre nom de vendeur"
+msgstr "Votre nom de vendeur simulé"
 
 #: modules/protx/config.py:95
 msgid ""
 "Simulator (you have to directly request it) and add your server IP address "
 "to the VSP Simulator, or it won't work."
 msgstr ""
+"Utilisé pour les transactions de test ET réelles. Soyez sûr 'davoir activé le "
+"simulateur VSP (vous devez le demander direcement) etd'avoir indiqué "
+"l'adresse IP de votre serveur au simulateur VSP ou cela ne marchera pas."
 
 #: modules/protx/config.py:100
 msgid "Currency code for Prot/X transactions."
 
 #: modules/protx/forms.py:78
 msgid "You must provide a starting month when using this type of card."
-msgstr ""
+msgstr "Vous devez indiquer un mois de début avec ce type de carte."
 
 #: modules/protx/forms.py:84 modules/protx/forms.py:97
 msgid "This must be a number"
-msgstr ""
+msgstr "Cela doit être un nombre"
 
 #: modules/protx/forms.py:87 modules/protx/forms.py:100
 msgid "Out of range, must be 1-12"
-msgstr ""
+msgstr "Le nombre doit être compris entre 1 et 12 inclus"
 
 #: modules/protx/forms.py:91
 msgid "You must provide a starting year when using this type of card."
-msgstr ""
+msgstr "Vous devez indiquer une année de début avec ce type de carte."
 
 #: modules/protx/forms.py:104
 msgid "You must provide an issue number when using this type of card."
-msgstr ""
+msgstr "Vous devez indiquer un numéro d'émission avec ce type de carte."
 
 #: modules/protx/processor.py:153
 msgid "TESTING MODE"
-msgstr ""
+msgstr "MODE TEST"
 
 #: modules/protx/processor.py:196
 msgid "Invalid response from payment gateway"
-msgstr ""
+msgstr "Réponse invalide de la passerelle de paiement"
 
 #: modules/protx/processor.py:198
 msgid "Error processing payment."
-msgstr ""
+msgstr "Erreur durant le paiement."
 
 #: modules/protx/views.py:41
 msgid "3D Secure transaction expired. Please try again."
 "Veuillez nous contacter."
 
 #: modules/purchaseorder/config.py:5
-#, fuzzy
 msgid "Purchase Order Module Settings"
-msgstr "Paramètres du module de paiement Test"
+msgstr "Paramètres du module de paiement Purchase Order (PO)"
 
 #: modules/purchaseorder/config.py:40
 msgid "Verbose logging?"
-msgstr "Logs des événements détaillés?"
+msgstr "Logs des événements détaillés ?"
 
 #: modules/purchaseorder/models.py:9
 msgid "Customer PO Number"
-msgstr ""
+msgstr "Numéro de client PO"
 
 #: modules/purchaseorder/models.py:11
-#, fuzzy
 msgid "Outstanding Balance"
-msgstr "Solde restant dû"
+msgstr "Solde en cours"
 
 #: modules/purchaseorder/models.py:13
-#, fuzzy
 msgid "Paid on"
-msgstr "Payé"
+msgstr "Payé le"
 
 #: modules/sermepa/config.py:17
-#, fuzzy
 msgid "SERMEPA (ServiRed) Payment Module Settings"
-msgstr "Paramètres du module de paiement COD"
+msgstr "Paramètres du module de paiement SERMEPA (ServiRed)"
 
 #: modules/sermepa/config.py:56
-#, fuzzy
 msgid "Currency"
-msgstr "Code de la devise"
+msgstr "Devise"
 
 #: modules/sermepa/config.py:59
 msgid "EUR (Euro)"
-msgstr ""
+msgstr "EUR (Euro)"
 
 #: modules/sermepa/config.py:60
 msgid "USD (US Dollar)"
-msgstr ""
+msgstr "USD (US Dollar)"
 
 #: modules/sermepa/config.py:61
 msgid "GBP (British Pound)"
-msgstr ""
+msgstr "GBP (British Pound)"
 
 #: modules/sermepa/config.py:62
 msgid "JPY (Japanese Yen)"
-msgstr ""
+msgstr "JPY (Japanese Yen)"
 
 #: modules/sermepa/config.py:69
-#, fuzzy
 msgid "Merchant FUC"
-msgstr "Identifiant vendeur"
+msgstr "Code FUC marchant"
 
 #: modules/sermepa/config.py:70
 msgid "Your FUC code"
-msgstr ""
+msgstr "Votre code FUC"
 
 #: modules/sermepa/config.py:76
-#, fuzzy
 msgid "Merchant title"
-msgstr "Clé vendeur"
+msgstr "Titre du marchant"
 
 #: modules/sermepa/config.py:77
 msgid ""
 "Description of your shop which will be visible on payment confirmation screen"
 msgstr ""
+"Description de votre boutique qui sera visible sur la page de confirmation "
+"du paiement"
 
 #: modules/sermepa/config.py:85
 msgid "Signature code"
-msgstr ""
+msgstr "Code de signature"
 
 #: modules/sermepa/config.py:86
 msgid "Your secret code used to sign transaction data"
-msgstr ""
+msgstr "Votre code secret servant à signer les données de transaction"
 
 #: modules/sermepa/config.py:92
 msgid "Test signature code"
-msgstr ""
+msgstr "Code de signature de test "
 
 #: modules/sermepa/config.py:93
 msgid "Your secret code used to sign transaction data in test payments"
-msgstr ""
+msgstr "Votre code secret servant à signer les données de transaction de test"
 
 #: modules/sermepa/config.py:100
 msgid "Terminal number"
-msgstr ""
+msgstr "Numéro de terminal"
 
 #: modules/sermepa/config.py:107
 msgid "Test terminal number"
-msgstr ""
+msgstr "Numéro de terminal de test"
 
 #: modules/sermepa/config.py:109
 msgid "Terminal number used for test payments"
-msgstr ""
+msgstr "Numéro de terminal utilisé pour les paiements de test"
 
 #: modules/sermepa/config.py:117
-#, fuzzy
 msgid "The SERMEPA URL for real transaction posting."
-msgstr "L'URL Paypal pour effectuer des transactions réelles"
+msgstr "L'URL SERMEPA pour effectuer des transactions réelles"
 
 #: modules/sermepa/config.py:124
-#, fuzzy
 msgid "Test Post URL"
-msgstr "URL Post"
+msgstr "URL Post de test"
 
 #: modules/sermepa/config.py:125
-#, fuzzy
 msgid "The SERMEPA URL for test transaction posting."
-msgstr "L'URL Paypal pour effectuer des transactions de test."
+msgstr "L'URL SERMEPA pour effectuer des transactions de test."
 
 #: modules/sermepa/config.py:133
 msgid "Callback URL"
-msgstr ""
+msgstr "URL de notification"
 
 #: modules/sermepa/config.py:134
 msgid "Callback URL for on-line notifications about payment progress"
 msgstr ""
+"URL pour les notifications en temps réel à propos de la progression "
+"du paiement"
 
 #: modules/sermepa/config.py:141
 msgid "OK URL"
-msgstr ""
+msgstr "URL de succès"
 
 #: modules/sermepa/config.py:142
 msgid "URL for customer to return after successful payment"
-msgstr ""
+msgstr "URL vers laquelle le client sera redirigé en cas de paiement réussi"
 
 #: modules/sermepa/config.py:149
 msgid "Failure URL"
-msgstr ""
+msgstr "URL d'échec"
 
 #: modules/sermepa/config.py:150
 msgid "URL for customer to return after payment failure"
-msgstr ""
+msgstr "URL vers laquelle le client sera redirigé en cas de paiement échoué"
 
 #: modules/trustcommerce/config.py:8
 msgid "TrustCommerce Payment Settings"
 
 #: modules/trustcommerce/config.py:32
 msgid "Use Address Verification System (AVS)?"
-msgstr "Utiliser le système de vérification d'adresse (AVS)?"
+msgstr "Utiliser le système de vérification d'adresse (AVS) ?"
 
 #: modules/trustcommerce/config.py:43
 msgid "Type of authorization to perform."
 #: modules/trustcommerce/processor.py:107
 #, python-format
 msgid "Transaction was declined.  Reason: %s"
-msgstr "La transaction a échoué. raison: %s"
+msgstr "La transaction a échoué. Raison : %s"
 
 #: modules/trustcommerce/processor.py:111
 #, python-format
 msgid "Improperly formatted data. Offending fields: %s"
-msgstr "Données mal formatées. Champs en cause: %s"
+msgstr "Données mal formatées. Champs en cause : %s"
 
 #: modules/trustcommerce/processor.py:116
 #, python-format
 msgid "An error occurred: %s"
-msgstr "Une erreur est survenue: %s"
+msgstr "Une erreur est survenue : %s"
 
 #: templates/payment/_order_payment_summary.html:6
 msgid "Paid"
 
 #: templates/payment/admin/charge_remaining_confirm.html:14
 msgid "Extra Shipping"
-msgstr "Frais de transport spéciaux "
+msgstr "Frais de transport spéciaux"
 
 #: templates/shop/checkout/authentication_required.html:10
-#, fuzzy
 msgid "Authentication required"
-msgstr "Correspondance de pays requise?"
+msgstr "Authentification requise"
 
 #: templates/shop/checkout/authentication_required.html:13
 #: templates/shop/checkout/base_confirm.html:15
 #: templates/shop/checkout/base_pay_ship.html:13
 #: templates/shop/checkout/form.html:23
 msgid "Ship/Bill"
-msgstr ""
+msgstr "Livraison / Paiement"
 
 #: templates/shop/checkout/authentication_required.html:15
 #: templates/shop/checkout/base_confirm.html:17
 #: templates/shop/checkout/base_pay_ship.html:15
 #: templates/shop/checkout/form.html:25
 msgid "Confirmation"
-msgstr ""
+msgstr "Confirmation"
 
 #: templates/shop/checkout/authentication_required.html:29
 #: templates/shop/checkout/form.html:45
 msgid "Login"
-msgstr ""
+msgstr "Connexion"
 
 #: templates/shop/checkout/authentication_required.html:33
 msgid "If you do not have an account, please"
-msgstr ""
+msgstr "Si vous n'avez pas de compte, merci de"
 
 #: templates/shop/checkout/authentication_required.html:33
 msgid "click here"
-msgstr ""
+msgstr "cliquer ici"
 
 #: templates/shop/checkout/authentication_required.html:34
 msgid "If you do not remember your password, please"
-msgstr ""
+msgstr "Si vous ne vous souvenez pas de votre mot de passe, merci de"
 
 #: templates/shop/checkout/authentication_required.html:34
 msgid "click here</a> to have it reset."
-msgstr ""
+msgstr "clicker ici</a> pour le réinitialiser."
 
 #: templates/shop/checkout/balance_remaining.html:12
 msgid "Order Balance"
-msgstr ""
+msgstr "Montant total"
 
 #: templates/shop/checkout/balance_remaining.html:17
 #, python-format
 "To complete this order, you need to pay the %(orderbalance)s balance "
 "remaining on this order."
 msgstr ""
+"Pour compléter cette commande, vous devez payer le montant de "
+"%(orderbalance)s restant."
 
 #: templates/shop/checkout/balance_remaining.html:22
 #: templates/shop/checkout/form.html:57
 msgid "How do you want to pay?"
-msgstr ""
+msgstr "Comment souhaitez-vous payer ?"
 
 #: templates/shop/checkout/balance_remaining.html:26
 #: templates/shop/checkout/form.html:152
 msgid "Continue Checkout"
-msgstr ""
+msgstr "Poursuivre le paiement"
 
 #: templates/shop/checkout/base_confirm.html:22
 msgid ""
 "The following error was returned while trying to process your payment. "
 "Please correct and resubmit."
 msgstr ""
+"Les erreurs suivantes sont survenues en essayant de procéder à votre "
+"paiement. Merci d'apporter les corrections nécessaires et de valider à "
+"nouveau."
 
 #: templates/shop/checkout/base_confirm.html:25
 msgid "Please validate the following information, then submit your order."
 msgstr ""
+"Merci de vérifier les informations suivantes, puis validez votre commande."
 
 #: templates/shop/checkout/base_confirm.html:41
 #: templates/shop/checkout/google/confirm.html:17
 #: templates/shop/checkout/sermepa/confirm.html:17
 #: templates/shop/checkout/sermepa/confirm.html:42
 msgid "Purchase Items"
-msgstr ""
+msgstr "Valider la commande"
 
 #: templates/shop/checkout/base_pay_ship.html:18
 #: templates/shop/checkout/form.html:28
 msgid ""
 "Please complete the following information in order to submit your order."
 msgstr ""
+"Merci de bien vouloir fournir les informations suivantes pour continuer "
+"votre commande."
 
 #: templates/shop/checkout/base_pay_ship.html:21
 #: templates/shop/checkout/form.html:30
-#, fuzzy
 msgid "Please correct the following error:"
 msgid_plural "Please correct the following errors:"
-msgstr[0] "Veuillez corriger l'erreur ci-dessous:"
-msgstr[1] "Veuillez corriger les erreurs ci-dessous:"
+msgstr[0] "Veuillez corriger l'erreur suivante :"
+msgstr[1] "Veuillez corriger lemr erreurs suivantes :"
 
 #: templates/shop/checkout/base_pay_ship.html:39
 #: templates/shop/checkout/form.html:107
-#, fuzzy
 msgid "Shipping Information"
-msgstr "Ajustement de la livraison"
+msgstr "Informations de livraison"
 
 #: templates/shop/checkout/base_pay_ship.html:44
 msgid "The following shipping method will be used"
-msgstr ""
+msgstr "Le moyen de paiement suivant sera utilisé"
 
 #: templates/shop/checkout/base_pay_ship.html:46
 msgid "Please choose your preferred shipping method"
-msgstr ""
+msgstr "Choisissez votre moyen de paiement"
 
 #: templates/shop/checkout/base_pay_ship.html:55
 msgid "There are no items in this order to ship."
-msgstr ""
+msgstr "Il n'y a pas de produits à livrer dans cette commande."
 
 #: templates/shop/checkout/base_pay_ship.html:60
 msgid "Confirm"
-msgstr ""
+msgstr "Comfirmer"
 
 #: templates/shop/checkout/confirm.html:6
 #: templates/shop/checkout/cod/confirm.html:6
 "The following error was returned while trying to process your card.  Please "
 "correct and resubmit"
 msgstr ""
+"Les erreurs suivantes sont survenues lors du traitement de votre paiement. "
+"Merci d'apporter les corrections nécessaires et de valide nouveau."
 
 #: templates/shop/checkout/confirm.html:19
 #: templates/shop/checkout/protx/confirm.html:19
 "Your %(credit_card_type)s card ending in %(credit_card_number)s will be "
 "charged %(order_total)s."
 msgstr ""
+"Votre carte %(credit_card_type)s dont le numéro se termine par "
+"%(credit_card_number)s sera débitée de %(order_total)s."
 
 #: templates/shop/checkout/empty_cart.html:12
 msgid ""
 "Your cart is empty. Please add some items to your cart, then complete the "
 "checkout process."
 msgstr ""
+"Votre panier est vide. Ajoutez des produits dans votre panier puis complétez "
+"le processus de commande."
 
 #: templates/shop/checkout/failure.html:11
-#, fuzzy
 msgid "Failed payment"
-msgstr "Activer les modules de paiement"
+msgstr "Échec du paiement"
 
 #: templates/shop/checkout/failure.html:12
 msgid "We are sorry, but the payment process finished with a failure."
 msgstr ""
+"Nous sommes désolé, mais le processus de paiement s'est terminé par un échec."
 
 #: templates/shop/checkout/failure.html:13
 msgid "You may"
-msgstr ""
+msgstr "Vous devriez"
 
 #: templates/shop/checkout/failure.html:13
 msgid "proceed to the cart"
-msgstr ""
+msgstr "retourner au panier"
 
 #: templates/shop/checkout/failure.html:13
 msgid "and check out again, using other payment method."
 msgstr ""
+"et recommencer le processus de paiement en utilisant un autre moyen"
+"de paiement."
 
 #: templates/shop/checkout/form.html:39
 msgid ""
 "If you already have an account, you can login now to fill in most of the "
 "information below."
 msgstr ""
+"Si vous avez déjà un compte, vous pouvez vous connecter maintenant pour "
+"remplir automatiquement la plupart des champs ci-dessous."
 
 #: templates/shop/checkout/form.html:40
 msgid "This is just a convenience, no account is required!"
-msgstr ""
+msgstr "C'est juste une commodité, avoir un compte n'est pas obligatoire."
 
 #: templates/shop/checkout/form.html:43
-#, fuzzy
 msgid "Username or email"
-msgstr "Autres adresses email pour une commande"
+msgstr "Identifiant ou adresse email"
 
 #: templates/shop/checkout/form.html:44
 msgid "Password"
-msgstr ""
+msgstr "Mot de passe"
 
 #: templates/shop/checkout/form.html:52
 msgid "You'll need to fill out at least the fields with a *"
-msgstr ""
+msgstr "Vous devez au moins remplir les champs suivis d'un *"
 
 #: templates/shop/checkout/form.html:62
 msgid "Basic Information"
-msgstr ""
+msgstr "Informations principales"
 
 #: templates/shop/checkout/form.html:63
 msgid "Email address"