diff --git a/Readme.md b/Readme.md index 93df8ab36..392af4339 100755 --- a/Readme.md +++ b/Readme.md @@ -58,6 +58,11 @@ $ php Thelia thelia:install You just have to follow all instructions. +Contribute +---------- + +see the documentation : http://doc.thelia.net/en/documentation/contribute.html + Usage ----- diff --git a/core/lib/Thelia/Action/Category.php b/core/lib/Thelia/Action/Category.php index 815ea162a..ac68baa6a 100755 --- a/core/lib/Thelia/Action/Category.php +++ b/core/lib/Thelia/Action/Category.php @@ -25,6 +25,8 @@ namespace Thelia\Action; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Thelia\Exception\UrlRewritingException; +use Thelia\Form\Exception\FormValidationException; use Thelia\Model\CategoryQuery; use Thelia\Model\Category as CategoryModel; @@ -90,6 +92,13 @@ class Category extends BaseAction implements EventSubscriberInterface ->save(); + // Update the rewritten URL, if required + try { + $category->setRewrittenUrl($event->getLocale(), $event->getUrl()); + } catch(UrlRewritingException $e) { + throw new FormValidationException($e->getMessage(), $e->getCode()); + } + $event->setCategory($category); } } diff --git a/core/lib/Thelia/Action/Content.php b/core/lib/Thelia/Action/Content.php index 3c027ad04..d3dbdbba8 100644 --- a/core/lib/Thelia/Action/Content.php +++ b/core/lib/Thelia/Action/Content.php @@ -32,6 +32,8 @@ use Thelia\Core\Event\Content\ContentToggleVisibilityEvent; use Thelia\Core\Event\Content\ContentUpdateEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Core\Event\UpdatePositionEvent; +use Thelia\Exception\UrlRewritingException; +use Thelia\Form\Exception\FormValidationException; use Thelia\Model\ContentFolder; use Thelia\Model\ContentFolderQuery; use Thelia\Model\ContentQuery; @@ -79,6 +81,13 @@ class Content extends BaseAction implements EventSubscriberInterface ->save() ; + // Update the rewritten URL, if required + try { + $content->setRewrittenUrl($event->getLocale(), $event->getUrl()); + } catch(UrlRewritingException $e) { + throw new FormValidationException($e->getMessage(), $e->getCode()); + } + $content->updateDefaultFolder($event->getDefaultFolder()); $event->setContent($content); diff --git a/core/lib/Thelia/Action/Folder.php b/core/lib/Thelia/Action/Folder.php index a42330e47..df849898c 100644 --- a/core/lib/Thelia/Action/Folder.php +++ b/core/lib/Thelia/Action/Folder.php @@ -29,6 +29,8 @@ use Thelia\Core\Event\Folder\FolderToggleVisibilityEvent; use Thelia\Core\Event\Folder\FolderUpdateEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Core\Event\UpdatePositionEvent; +use Thelia\Exception\UrlRewritingException; +use Thelia\Form\Exception\FormValidationException; use Thelia\Model\FolderQuery; use Thelia\Model\Folder as FolderModel; @@ -56,6 +58,13 @@ class Folder extends BaseAction implements EventSubscriberInterface ->save(); ; + // Update the rewritten URL, if required + try { + $folder->setRewrittenUrl($event->getLocale(), $event->getUrl()); + } catch(UrlRewritingException $e) { + throw new FormValidationException($e->getMessage(), $e->getCode()); + } + $event->setFolder($folder); } } diff --git a/core/lib/Thelia/Action/Product.php b/core/lib/Thelia/Action/Product.php index 4fccbf3f6..ff32921b6 100644 --- a/core/lib/Thelia/Action/Product.php +++ b/core/lib/Thelia/Action/Product.php @@ -25,6 +25,8 @@ namespace Thelia\Action; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Thelia\Exception\UrlRewritingException; +use Thelia\Form\Exception\FormValidationException; use Thelia\Model\ProductQuery; use Thelia\Model\Product as ProductModel; @@ -114,7 +116,11 @@ class Product extends BaseAction implements EventSubscriberInterface ; // Update the rewritten URL, if required - $product->setRewrittenUrl($event->getLocale(), $event->getUrl()); + try { + $product->setRewrittenUrl($event->getLocale(), $event->getUrl()); + } catch(UrlRewritingException $e) { + throw new FormValidationException($e->getMessage(), $e->getCode()); + } // Update default category (ifd required) $product->updateDefaultCategory($event->getDefaultCategory()); diff --git a/core/lib/Thelia/Config/Resources/smarty-plugin.xml b/core/lib/Thelia/Config/Resources/smarty-plugin.xml index c3c6a1312..8019b0688 100644 --- a/core/lib/Thelia/Config/Resources/smarty-plugin.xml +++ b/core/lib/Thelia/Config/Resources/smarty-plugin.xml @@ -58,7 +58,9 @@ - + + %kernel.debug% + diff --git a/core/lib/Thelia/Core/Event/TheliaEvents.php b/core/lib/Thelia/Core/Event/TheliaEvents.php index 96358d4e4..c41de3d3a 100755 --- a/core/lib/Thelia/Core/Event/TheliaEvents.php +++ b/core/lib/Thelia/Core/Event/TheliaEvents.php @@ -107,7 +107,7 @@ final class TheliaEvents /** * sent just before customer removal */ - const BEFORE_DELETECUSTOMER = "action.before_updateCustomer"; + const BEFORE_DELETECUSTOMER = "action.before_deleteCustomer"; /** * sent just after customer removal @@ -121,7 +121,7 @@ final class TheliaEvents const ADDRESS_CREATE = "action.createAddress"; /** - * sent for address creation + * sent for address modification */ const ADDRESS_UPDATE = "action.updateAddress"; @@ -135,7 +135,14 @@ final class TheliaEvents */ const ADDRESS_DEFAULT = "action.defaultAddress"; + /** + * sent once the address creation form has been successfully validated, and before address insertion in the database. + */ const BEFORE_CREATEADDRESS = "action.before_createAddress"; + + /** + * Sent just after a successful insert of a new address in the database. + */ const AFTER_CREATEADDRESS = "action.after_createAddress"; const BEFORE_UPDATEADDRESS = "action.before_updateAddress"; diff --git a/core/lib/Thelia/Core/Template/Smarty/Plugins/Module.php b/core/lib/Thelia/Core/Template/Smarty/Plugins/Module.php index 4d1ed3060..9b86410de 100755 --- a/core/lib/Thelia/Core/Template/Smarty/Plugins/Module.php +++ b/core/lib/Thelia/Core/Template/Smarty/Plugins/Module.php @@ -23,12 +23,28 @@ namespace Thelia\Core\Template\Smarty\Plugins; +use Thelia\Core\HttpFoundation\Request; use Thelia\Core\Template\Smarty\SmartyPluginDescriptor; use Thelia\Core\Template\Smarty\AbstractSmartyPlugin; use Thelia\Model\ModuleQuery; class Module extends AbstractSmartyPlugin { + /** + * @var bool application debug mode + */ + protected $debug; + + /** + * @var Request $request + */ + protected $request; + + public function __construct($debug, Request $request) + { + $this->debug = $debug; + $this->request = $request; + } /** * Process theliaModule template inclusion function * @@ -44,6 +60,10 @@ class Module extends AbstractSmartyPlugin if (false !== $location = $this->getParam($params, 'location', false)) { + if($this->debug === true && $this->request->get('SHOW_INCLUDE')) { + echo sprintf('
%s
', $location); + } + $moduleLimit = $this->getParam($params, 'module', null); $modules = ModuleQuery::getActivated(); diff --git a/core/lib/Thelia/Core/Template/TemplateHelper.php b/core/lib/Thelia/Core/Template/TemplateHelper.php index 9b93aae96..4fb83d740 100644 --- a/core/lib/Thelia/Core/Template/TemplateHelper.php +++ b/core/lib/Thelia/Core/Template/TemplateHelper.php @@ -240,20 +240,18 @@ class TemplateHelper fwrite($fp, '<' . "?php\n\n"); fwrite($fp, "return array(\n"); - $idx = 0; + // Sort keys alphabetically while keeping index + asort($texts); - foreach($texts as $text) - { + foreach ($texts as $key => $text) { // Write only defined (not empty) translations - if (! empty($translations[$idx])) { + if (! empty($translations[$key])) { $text = str_replace("'", "\'", $text); - $translation = str_replace("'", "\'", $translations[$idx]); + $translation = str_replace("'", "\'", $translations[$key]); - fwrite($fp, sprintf("\t'%s' => '%s',\n", $text, $translation)); + fwrite($fp, sprintf(" '%s' => '%s',\n", $text, $translation)); } - - $idx++; } fwrite($fp, ");\n"); diff --git a/core/lib/Thelia/Exception/UrlRewritingException.php b/core/lib/Thelia/Exception/UrlRewritingException.php index 6f789230b..4d84a0193 100755 --- a/core/lib/Thelia/Exception/UrlRewritingException.php +++ b/core/lib/Thelia/Exception/UrlRewritingException.php @@ -27,6 +27,8 @@ class UrlRewritingException extends \Exception { const UNKNOWN_EXCEPTION = 0; + const URL_ALREADY_EXISTS = 100; + const URL_NOT_FOUND = 404; const RESOLVER_NULL_SEARCH = 800; diff --git a/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php b/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php index bcbbb9afd..acabbb51f 100644 --- a/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php +++ b/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php @@ -26,8 +26,10 @@ namespace Thelia\Model\Tools; use Thelia\Core\Event\GenerateRewrittenUrlEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Exception\UrlRewritingException; +use Thelia\Model\RewritingArgumentQuery; use Thelia\Model\RewritingUrlQuery; use Thelia\Model\RewritingUrl; +use Thelia\Rewriting\RewritingResolver; use Thelia\Tools\URL; use Thelia\Model\ConfigQuery; /** @@ -153,12 +155,78 @@ trait UrlRewritingTrait { * Set the rewritten URL for the given locale * * @param string $locale a valid locale (e.g. en_US) - * @param $url the wanted url + * @param $url * @return $this + * @throws UrlRewritingException + * @throws \Thelia\Exception\UrlRewritingException */ public function setRewrittenUrl($locale, $url) { - // TODO - code me ! + $currentUrl = $this->getRewrittenUrl($locale); + if($currentUrl == $url) { + /* no url update */ + return $this; + } + + try { + $resolver = new RewritingResolver($url); + + /* we can reassign old url */ + if(null === $resolver->redirectedToUrl) { + /* else ... */ + if($resolver->view == $this->getRewrittenUrlViewName() && $resolver->viewId == $this->getId()) { + /* it's an url related to the current object */ + + if($resolver->locale != $locale) { + /* it is an url related to this product for another locale */ + throw new UrlRewritingException('URL_ALREADY_EXISTS', UrlRewritingException::URL_ALREADY_EXISTS); + } + + if (count($resolver->otherParameters) > 0) { + /* it is an url related to this product but with more arguments */ + throw new UrlRewritingException('URL_ALREADY_EXISTS', UrlRewritingException::URL_ALREADY_EXISTS); + } + + /* here it must be a deprecated url */ + } else { + /* already related to another object */ + throw new UrlRewritingException('URL_ALREADY_EXISTS', UrlRewritingException::URL_ALREADY_EXISTS); + } + } + } catch(UrlRewritingException $e) { + /* It's all good if URL is not found */ + if($e->getCode() !== UrlRewritingException::URL_NOT_FOUND) { + throw $e; + } + } + + /* set the new URL */ + if(isset($resolver)) { + /* erase the old one */ + $rewritingUrl = RewritingUrlQuery::create()->findOneByUrl($url); + $rewritingUrl->setView($this->getRewrittenUrlViewName()) + ->setViewId($this->getId()) + ->setViewLocale($locale) + ->setRedirected(null) + ->save() + ; + + /* erase additional arguments if any : only happens in case it erases a deprecated url */ + RewritingArgumentQuery::create()->filterByRewritingUrl($rewritingUrl)->deleteAll(); + } else { + /* just create it */ + $rewritingUrl = new RewritingUrl(); + $rewritingUrl->setUrl($url) + ->setView($this->getRewrittenUrlViewName()) + ->setViewId($this->getId()) + ->setViewLocale($locale) + ->save() + ; + } + + /* deprecate the old one if needed */ + $oldRewritingUrl = RewritingUrlQuery::create()->findOneByUrl($currentUrl); + $oldRewritingUrl->setRedirected($rewritingUrl->getId())->save(); return $this; } diff --git a/core/lib/Thelia/Rewriting/RewritingRetriever.php b/core/lib/Thelia/Rewriting/RewritingRetriever.php index dfdbab05c..ce6ada8e7 100755 --- a/core/lib/Thelia/Rewriting/RewritingRetriever.php +++ b/core/lib/Thelia/Rewriting/RewritingRetriever.php @@ -71,7 +71,9 @@ class RewritingRetriever $this->rewrittenUrl = null; $this->url = URL::getInstance()->viewUrl($view, $allParametersWithoutView); if($this->search !== null) { - $this->rewrittenUrl = $this->search->getUrl(); + $this->rewrittenUrl = URL::getInstance()->absoluteUrl( + $this->search->getUrl() + ); } } diff --git a/core/lib/Thelia/Tests/Action/ContentTest.php b/core/lib/Thelia/Tests/Action/ContentTest.php index f527026bf..a9b61e1db 100644 --- a/core/lib/Thelia/Tests/Action/ContentTest.php +++ b/core/lib/Thelia/Tests/Action/ContentTest.php @@ -35,14 +35,45 @@ use Thelia\Model\ContentFolder; use Thelia\Model\ContentFolderQuery; use Thelia\Model\ContentQuery; use Thelia\Model\FolderQuery; +use Thelia\Tests\TestCaseWithURLToolSetup; /** * Class ContentTest * @package Thelia\Tests\Action * @author Manuel Raynaud */ -class ContentTest extends BaseAction +class ContentTest extends TestCaseWithURLToolSetup { + use RewrittenUrlTestTrait; + + public function getUpdateEvent(&$content) + { + if(!$content instanceof \Thelia\Model\Content) { + $content = $this->getRandomContent(); + } + + $event = new ContentUpdateEvent($content->getId()); + $event + ->setVisible(1) + ->setLocale($content->getLocale()) + ->setTitle($content->getTitle()) + ->setChapo($content->getChapo()) + ->setDescription($content->getDescription()) + ->setPostscriptum($content->getPostscriptum()) + ->setDefaultFolder($content->getDefaultFolderId()) + ; + + return $event; + } + + public function processUpdateAction($event) + { + $contentAction = new Content($this->getContainer()); + $contentAction->update($event); + + return $event->getContent(); + } + public function testCreateContent() { $folder = $this->getRandomFolder(); @@ -80,6 +111,7 @@ class ContentTest extends BaseAction ->setChapo('test update content short description') ->setDescription('test update content description') ->setPostscriptum('test update content postscriptum') + ->setUrl($content->getRewrittenUrl('en_US')) ->setDefaultFolder($folder->getId()) ; diff --git a/core/lib/Thelia/Tests/Action/FolderTest.php b/core/lib/Thelia/Tests/Action/FolderTest.php index c433411ee..fbe4e0e1a 100644 --- a/core/lib/Thelia/Tests/Action/FolderTest.php +++ b/core/lib/Thelia/Tests/Action/FolderTest.php @@ -30,14 +30,45 @@ use Thelia\Core\Event\Folder\FolderToggleVisibilityEvent; use Thelia\Core\Event\Folder\FolderUpdateEvent; use Thelia\Core\Event\UpdatePositionEvent; use Thelia\Model\FolderQuery; +use Thelia\Tests\TestCaseWithURLToolSetup; /** * Class FolderTest * @package Thelia\Tests\Action\ImageTest * @author Manuel Raynaud */ -class FolderTest extends BaseAction +class FolderTest extends TestCaseWithURLToolSetup { + use RewrittenUrlTestTrait; + + public function getUpdateEvent(&$folder) + { + if(!$folder instanceof \Thelia\Model\Folder) { + $folder = $this->getRandomFolder(); + } + + $event = new FolderUpdateEvent($folder->getId()); + $event + ->setVisible(1) + ->setLocale($folder->getLocale()) + ->setTitle($folder->getTitle()) + ->setChapo($folder->getChapo()) + ->setDescription($folder->getDescription()) + ->setPostscriptum($folder->getPostscriptum()) + ->setParent($folder->getParent()) + ; + + return $event; + } + + public function processUpdateAction($event) + { + $contentAction = new Folder($this->getContainer()); + $contentAction->update($event); + + return $event->getFolder(); + } + /** * test folder creation * @covers Thelia\Action\Folder::create @@ -82,6 +113,7 @@ class FolderTest extends BaseAction ->setChapo('test folder update chapo') ->setDescription('update folder description') ->setPostscriptum('update folder postscriptum') + ->setUrl($folder->getRewrittenUrl('en_US')) ->setParent(0) ; diff --git a/core/lib/Thelia/Tests/Action/RewrittenUrlTestTrait.php b/core/lib/Thelia/Tests/Action/RewrittenUrlTestTrait.php new file mode 100644 index 000000000..567fbe3d9 --- /dev/null +++ b/core/lib/Thelia/Tests/Action/RewrittenUrlTestTrait.php @@ -0,0 +1,86 @@ + + */ +trait RewrittenUrlTestTrait +{ + abstract public function getUpdateEvent(&$object); + abstract public function processUpdateAction($event); + + /** + * @expectedException \Thelia\Form\Exception\FormValidationException + * @expectedExceptionCode 100 + */ + public function testUpdateExistingUrl() + { + $object = null; + $event = $this->getUpdateEvent($object); + + /* get an existing url */ + $existingUrl = RewritingUrlQuery::create() + ->filterByViewId($object->getId(), Criteria::NOT_EQUAL) + ->filterByRedirected(null) + ->filterByView(ConfigQuery::getObsoleteRewrittenUrlView(), Criteria::NOT_EQUAL) + ->findOne(); + + if(null === $existingUrl) { + $this->fail('use fixtures before launching test, there is not enough rewritten url'); + } + + $event->setUrl($existingUrl->getUrl()); + + $this->processUpdateAction($event); + } + + public function testUpdateUrl() + { + $object = null; + $event = $this->getUpdateEvent($object); + + $currentUrl = $object->getRewrittenUrl($object->getLocale()); + + /* get a brand new URL */ + $exist = true; + while(true === $exist) { + $newUrl = md5(rand(1, 999999)) . ".html"; + try { + new RewritingResolver($newUrl); + } catch(UrlRewritingException $e) { + if($e->getCode() === UrlRewritingException::URL_NOT_FOUND) { + /* It's all good if URL is not found */ + $exist = false; + } else { + throw $e; + } + } + } + + $event->setUrl($newUrl); + + $updatedObject = $this->processUpdateAction($event); + + /* new URL is updated */ + $this->assertEquals($newUrl, $updatedObject->getRewrittenUrl($object->getLocale())); + + /* old url must be redirected to the new one */ + $newUrlEntry = RewritingUrlQuery::create()->findOneByUrl($newUrl); + $oldUrlEntry = RewritingUrlQuery::create()->findOneByUrl($currentUrl); + + $this->assertEquals($oldUrlEntry->getRedirected(), $newUrlEntry->getId()); + + /* we can reassign old Url to another object */ + //@todo + } +} \ No newline at end of file diff --git a/core/lib/Thelia/Tests/Rewriting/RewritingRetrieverTest.php b/core/lib/Thelia/Tests/Rewriting/RewritingRetrieverTest.php index 1a47dc10a..e237d65fb 100755 --- a/core/lib/Thelia/Tests/Rewriting/RewritingRetrieverTest.php +++ b/core/lib/Thelia/Tests/Rewriting/RewritingRetrieverTest.php @@ -101,7 +101,7 @@ class RewritingRetrieverTest extends \PHPUnit_Framework_TestCase $retriever->loadViewUrl('view', 'fr_FR', 1); - $this->assertEquals('foo.html', $retriever->rewrittenUrl); + $this->assertEquals(URL::getInstance()->absoluteUrl('foo.html'), $retriever->rewrittenUrl); $this->assertEquals(URL::getInstance()->viewUrl('view', array('locale' => 'fr_FR', 'view_id' => 1)), $retriever->url); } diff --git a/core/lib/Thelia/Tests/TestCaseWithURLToolSetup.php b/core/lib/Thelia/Tests/TestCaseWithURLToolSetup.php index e0fd3f678..41a955f87 100644 --- a/core/lib/Thelia/Tests/TestCaseWithURLToolSetup.php +++ b/core/lib/Thelia/Tests/TestCaseWithURLToolSetup.php @@ -30,15 +30,21 @@ namespace Thelia\Tests; */ class TestCaseWithURLToolSetup extends \PHPUnit_Framework_TestCase { + private $container = null; + public function __construct() { + $this->container = new \Symfony\Component\DependencyInjection\ContainerBuilder(); + + $dispatcher = $this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface"); + + $this->container->set("event_dispatcher", $dispatcher); + $this->setupURLTool(); } protected function setupURLTool() { - $container = new \Symfony\Component\DependencyInjection\ContainerBuilder(); - $context = new \Symfony\Component\Routing\RequestContext( '/thelia/index.php', 'GET', @@ -57,8 +63,13 @@ class TestCaseWithURLToolSetup extends \PHPUnit_Framework_TestCase ->method('getContext') ->will($this->returnValue($context)); - $container->set("router.admin", $router); + $this->container->set("router.admin", $router); - new \Thelia\Tools\URL($container); + new \Thelia\Tools\URL($this->container); + } + + public function getContainer() + { + return $this->container; } } diff --git a/core/lib/Thelia/Tools/URL.php b/core/lib/Thelia/Tools/URL.php index 85f5289cd..57fb9fa96 100755 --- a/core/lib/Thelia/Tools/URL.php +++ b/core/lib/Thelia/Tools/URL.php @@ -199,7 +199,7 @@ class URL public function retrieve($view, $viewId, $viewLocale) { if (ConfigQuery::isRewritingEnable()) { - URL::getInstance()->absoluteUrl($this->retriever->loadViewUrl($view, $viewLocale, $viewId)); + $this->retriever->loadViewUrl($view, $viewLocale, $viewId); } else { $allParametersWithoutView = array(); $allParametersWithoutView['locale'] = $viewLocale; diff --git a/templates/backOffice/default/I18n/fr_FR.php b/templates/backOffice/default/I18n/fr_FR.php index 4de1389cc..72db631f2 100755 --- a/templates/backOffice/default/I18n/fr_FR.php +++ b/templates/backOffice/default/I18n/fr_FR.php @@ -1,341 +1,922 @@ 'Page non trouvée', - 'The server returned a "404 Not Found"' => 'Le serveur à retourné l\'erreur "404 non trouvé"', - 'The page you\'ve requested was not found. Please check the page address, and try again.' => 'La page que vous avez demandé n\'est pas disponible.', - 'Thelia Back Office' => 'Thelia Back Office', - 'Version %ver' => 'Version %ver', - 'View site' => 'Voir le site', - 'View shop' => 'Voir la boutique', - 'Profil' => 'Profile', - 'Close administation session' => 'Quitter l\'interface d\'administration', - 'Logout' => 'Se déconnecter', - 'Home' => 'Accueil', - 'Customers' => 'Clients', - 'Orders' => 'Commandes', - 'All orders' => 'Toutes les commandes', - 'Catalog' => 'Catalogue', - 'Folders' => 'Dossier', - 'Coupons' => 'Codes Promo', - 'Configuration' => 'Configuration', - 'Modules' => 'Modules', - 'Search' => 'Recherche', - 'Thelia, the open source e-commerce solution' => 'Thelia, solution e-commerce libre', + ' (default)' => '(défaut)', '© Thelia 2013' => '© Thelia 2013', - 'Published by OpenStudio' => 'Edité par OpenStudio', - 'Thelia support forum' => 'Communauté Thelia', - 'Thelia contributions' => 'Contributions Thelia', - 'Thelia Mailing System' => 'Configuration des envois de mails', - 'Administration logs' => 'Gestion des logs', - 'Show logs' => 'Voir les loge', - 'Period' => 'Période', - 'From' => 'De', - 'To' => 'A', - 'Administrators' => 'Administrateurs', - 'Resources' => 'Ressources', - 'Back-office users' => 'Utilisateurs du back-office', - 'Taxes' => 'Taxes', - 'Create a new administrator' => 'Créer un nouvel administrateur', - 'Login' => 'Connexion', - 'First Name' => 'Prénom', - 'Last Name' => 'Nom', - 'Profile' => 'Profile', + '(edit)' => '(modification)', + '14.50' => '14.50', + '0 combinations' => '0 combinaisons', + 'Congratulations, all text is now translated !' => 'Félicitation, tout est traduit !', + 'Did not found any text to translate. It\'s probably normal. If not, please be sure to use Smarty\'s "intl" function in templates, or the Translator::trans() method in PHP files.' => 'Aucun texte à traduire trouvé. Cela est probablement normal. Sinon veuillez-vous assurer d\'utiliser la fonction Smarty intl dans vos templates, ou la méthode Translator::trans() dans vos fichiers PHP.', + 'A content could be attached to more than one folder. Select here the additional folders for this content.' => 'Un contenu peut-être lié à un ou plusieurs fichier. Sélectionnez ici les dossiers additionnels pour ce contenu.', + 'A product could be attached to more than one category. Select here the additional categories for this product.' => 'Un produit ne peut être lié à plus d\'une catégorie. Sélectionnez ici les catégories additionnelles pour ce produit.', + 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisée lorsqu\'un résumé ou une introduction est requise', + 'A short post-description information' => 'A courte post-description', + 'Aborted orders' => 'Paniers abandonnés', + 'Accessory title' => 'Titre de l\'accessoire', + 'Action' => 'Action', 'Actions' => 'Actions', - 'Superadministrator' => 'Super-administrateur', - 'Change this administrator' => 'Modifier cet administrateur', - 'Delete this administrator' => 'Supprimer cet administrateur', - 'FirstName' => 'Prénom', - 'LastName' => 'Nom', - 'Password' => 'Mot de passe', - 'Create' => 'Créer', - 'Cancel' => 'Annuler', - 'Leave empty to keep current password' => 'Laisser ce champ vide pour ne pas modifier le mot de passe', - 'Update a new administrator' => 'Modifier cet administrateur', - 'Update' => 'Mettre à jour', - 'Delete administrator' => 'Supprimer un administrateur', - 'Do you really want to delete this administrator ?' => 'Confirmez-vous la suppression de cet adminisrateur ?', - 'You can\'t delete this administrator' => 'Vous ne pouvez pas supprimer cet administrateur', - 'They are some administrator which are linked to this administrator. Please edit/remove them before deleting this administrator.' => 'Cet administrateur est lié avec un ou plusieurs autres administrateurs. Supprimez ou modifiez ces administrateur d\'abord.', - 'Label' => 'Libellé', - 'Company' => 'Entreprise', - 'Edit a language' => 'Modifier une langue', - 'Edit this language' => 'Modifier cette langue', - 'Current product template' => 'Gabarit de produit actuel', - 'Do not use a product template' => 'Ne pas utiliser de gabarit', - 'Apply' => 'Appliquer', - 'Product Attributes' => 'Déclinaisons du produit', - 'ID' => 'ID', - 'Attribute Name' => 'Nom de la déclinaison', - 'This product template does not contains any features' => 'Ce gabarit de produit ne comporte aucune caractéristique', - 'Product Features' => 'Caractéristiques du produit', - 'Feature Name' => 'Nom de la caractéristique', - 'Feature value for this product' => 'Valeur de la caractéristique', - 'Use Ctrl+click to select more than one value. You can also clear selected values.' => 'Utilisez Ctrl+clic pour choisir plus d\'une valeur. Vous pouvez aussi tout désélectionner.', - 'Enter here the feature value as free text' => 'Indiquez ici la valeur de la caractéristique', - 'Feature value' => 'Valeur de la caractéristique', - 'Related content' => 'Contenu associé', - 'You can attach here some content to this product' => 'Attachez ici un ou plusieurs contenus à ce produit', - 'Select a folder...' => 'Choisissez un dossier de contenu...', - 'Select a folder to get its content' => 'Choisissez un dossier de contenu pour lister ses contenus', - 'Select a folder content...' => 'Choisissez un dossier de contenu...', - 'Select a content and click (+) to add it to this product' => 'Chosiissez un contenu, et cliquez [+] pour l\'attacher au produit', - 'No available content in this folder' => 'Ce dossier est vide de contenus', - 'No folders found' => 'Aucun dossier n\'a été trouvé.', - 'Content title' => 'Titre du contenu', - 'Position' => 'Position', - 'Delete this content' => 'Supprimer ce contenu', - 'Category title' => 'Titre de la catégorie', - 'Enter new category position' => 'Classement de la catégorie ', - 'Lire la suite' => 'Lire la suite', - 'Value' => 'Valeur', - 'Title' => 'Civilité', - 'Product attributes' => 'Attributs produit', - 'Categories' => 'Catégories', - 'Top level categories' => 'Catégories de niveau 1 ', + 'Activate this log destination' => 'Activer cette destination de log', + 'Add' => 'Ajouter', + 'Add a new Customer' => 'Ajouter un client', + 'Add a new address' => 'Ajouter une nouvelle adresse', 'Add a new category' => 'Ajouter une catégorie', - 'Online' => 'En ligne', - 'Browse this category' => 'Parcourir cette catégorie', - 'Edit this category' => 'Editer cette catégorie', - 'Delete this category and all its contents' => 'Supprimer cette catégorie et tout ce qu\'elle contient ? ', - 'This category has no sub-categories. To create a new one, click the + button above.' => 'Cette catégorie n\'a pas de sous-catégorie. Pour en créer une nouvelle, cliquez sur le bouton + ci-dessus.', - 'This category has no sub-categories.' => 'Cette catégorie n\'a pas de sous-catégorie.', - 'Top level Products' => 'Produits mis en avant', + 'Add a new combination' => 'Ajouter une nouvelle combinaison', + 'Add a new content' => 'Ajouter un nouveau contenu', + 'Add a new country' => 'Ajouter un nouveau pays', + 'Add a new currency' => 'Ajouter une devise', + 'Add a new folder' => 'Ajouter un nouveau dossier', + 'Add a new language' => 'Ajouter une nouvelle langue', + 'Add a new mailing template' => 'Ajouter un nouveau template de mailing', 'Add a new product' => 'Ajouter un nouveau produit', - 'Reference' => 'Reference', - 'Product title' => 'Titre du produit', - 'This category doesn\'t contains any products. To add a new product, click the + button above.' => 'Cette catégorie n\'a aucun produit. Pour créer un nouveau product, cliques sur le bouton + ci-dessus. ', - 'Name' => 'Nom', - 'Enter here the category name in the default language (%title)' => 'Entrer ici le nom de la catégorie dans la langue par défaut (%title)', + 'Add a new product attribute' => 'Ajouter une nouvelle déclinaison produit', + 'Add a new product feature' => 'Ajouter une nouvelle caractéristique produit', + 'Add a new product template' => 'Ajouter un nouveau template produit', + 'Add a new shipping configuration' => 'Ajouter une nouvelle configuration de livraison', + 'Add a new variable' => 'Ajouter une variable', + 'Add tax to this group' => 'Ajouter une taxe à ce groupe', + 'Add this attribute to all product templates' => 'Ajouter cette déclinaison à tous les templates produit', + 'Add this country' => 'Ajouter ce pays', + 'Add this feature to all product templates' => 'Ajouter cette caractéristique à tous les templates produit', + 'Add to all product templates' => 'Ajouter à tous les templates produit', + 'Additional Folders' => 'Dossiers additionnels', + 'Additional address' => 'Adresse complémentaire', + 'Additional categories' => 'Catégories additionnelles', + 'Address' => 'Adresse', + 'Administration logs' => 'Gestion des logs', + 'Administration profiles' => 'Gestion des administrateurs', + 'Administrators' => 'Administrateurs', + 'All orders' => 'Toutes les commandes', + 'Alpha code 2' => 'Code alpha 2', + 'Alpha code 3' => 'Code alpha 3', + 'Amount' => 'Montant', + 'Amount :' => 'Montant', + 'An error occured' => 'Une erreur est survenue', + 'And' => 'Et', + 'Application field' => 'Champs d\'application', + 'Apply' => 'Appliquer', + 'Associations' => 'Associations', + 'Attribute' => 'Déclinaison', + 'Attribute Combinations' => 'Combinaison de déclinaisons', + 'Attribute Name' => 'Nom de la déclinaison', + 'Attribute information' => 'Information sur la déclinaison', + 'Attribute title' => 'Titre de la déclinaison', + 'Attribute values' => 'Valeurs de la déclinaison', + 'Attributes' => 'Déclinaisons', + 'Attributes & Features' => 'Déclinaisons & caractéristiques', + 'Auth Mode' => 'Mode d\'authentification', + 'Auth Mode :' => 'Mode d\'authentification:', + 'Average cart' => 'Panier moyen', + 'Back' => 'Retour', + 'Back-office home' => 'Accueil administration', + 'Back-office templates' => 'Template Back-office', + 'Back-office users' => 'Utilisateurs du back-office', + 'Browse' => 'Parcourir', + 'Browse files' => 'Sélectionnez les fichiers', + 'Browse this category' => 'Parcourir cette catégorie', + 'Browse this folder' => 'Parcourir ce dossier', + 'Can\'t be cumulative' => 'Ne peut être cumulé', + 'Can\'t load documents, please refresh this page.' => 'Impossible de charger le document, veuillez rafraîchir cette page.', + 'Can\'t load images, please refresh this page.' => 'Impossible de charger les images, veuillez rafraîchir cette page.', + 'Cancel' => 'Annuler', + 'Cancel changes and revert to original value' => 'Annuler les modifications et revenir à la version antérieure', + 'Cancel this order' => 'Annuler cette commande', + 'Cart' => 'Panier', + 'Catalog' => 'Catalogue', + 'Categories' => 'Catégories', + 'Categories in %cat' => 'Catégories dans %cat', + 'Category created on %date_create. Last modification: %date_change' => 'Catégorie créée le %date_create. Dernière modification le %date_change', + 'Category title' => 'Titre de la catégorie', + 'Cellular phone' => 'Téléphone portable', + 'Cellular phone number' => 'Numéro de portable', + 'Change this administrator' => 'Modifier cet administrateur', + 'Change this attribute' => 'Modifier cette déclinaison', + 'Change this country' => 'Modifier ce pays', + 'Change this currency' => 'Modifier cette devise', + 'Change this feature' => 'Modifier cette caractéristique', + 'Change this language' => 'Modifier cette langue', + 'Change this mailing template' => 'Modifier ce template de mailing', + 'Change this product attribute' => 'Modifier cette déclinaison produit', + 'Change this product feature' => 'Modifier cette caractéristique produit', + 'Change this product template' => 'Modifier ce template produit', + 'Change this profile' => 'Modifier ce profil', + 'Change this shipping configuration' => 'Modifier cette configuration de livraison', + 'Change this shipping zone' => 'Modifier cette zone de livraison', + 'Change this tax' => 'Modifier cette taxe', + 'Change this tax rule' => 'Modifier cette règle de taxe', + 'Change this template' => 'Modifier ce template', + 'Change this variable' => 'Modifier cette variable', + 'Check this box if you want to add this attributes to all product templates' => 'Cochez cette case si vous voulez ajouter cette déclinaison à tous les templates produits', + 'Check this box if you want to add this features to all product templates' => 'Cochez cette case si voulez ajouter cette caractéristique à tous les templates produit.', + 'Choose a country' => 'Choisissez un pays', + 'City' => 'Ville', + 'Classic modules' => 'Modules classic', + 'Click here' => 'Cliquez ici', + 'Close' => 'Fermer', + 'Close administation session' => 'Quitter l\'interface d\'administration', + 'Code' => 'Code', + 'Code :' => 'Code', + 'Combination EAN Code' => 'Combinaison de code EAN', + 'Combination builder' => 'Constructeur de combinaison', + 'Combination reference' => 'Référence de la combinaison', + 'Company' => 'Entreprise', + 'Condition type :' => 'Type de la condition:', + 'Condition\'s category :' => 'Type de condition', + 'Conditions' => 'Conditions', + 'Configuration' => 'Configuration', + 'Configuration mailing system' => 'Configuration du système de mailing', + 'Configure' => 'Configurer', + 'Configure this module' => 'Configurer ce module', + 'Confirm' => 'Confirmer', + 'Confirm changes' => 'Valider les modifications', + 'Confirmation' => 'Confirmation', + 'Content title' => 'Titre du contenu', + 'Contents in %fold' => 'Contenus dans %fold', + 'Copy source text in input field' => 'Copier le texte source dans le champs', + 'Countries' => 'Pays', + 'Countries that have the same tax rule' => 'Pays qui ont les même règles de taxe', + 'Country' => 'Pays', + 'Country description' => 'Description du pays', + 'Country short description' => 'Courte description du pays', + 'Country title' => 'Titre du pays', + 'Coupon' => 'Code promo', + 'Coupon : ' => 'Code promo:', + 'Coupon code' => 'Code promo', + 'Coupons' => 'Codes Promo', + 'Coupons : ' => 'Codes promo', + 'Create' => 'Créer', + 'Create a customer address' => 'Créer une adresse client', + 'Create a new administrator' => 'Créer un nouvel administrateur', + 'Create a new attribute' => 'Créer une nouvelle déclinaison', + 'Create a new attribute value' => 'Créer une nouvelle valeur de déclinaison', 'Create a new category' => 'Créer une catégorie', - 'Create this category' => 'Créer cette catégorie', - 'Enter here the product reference' => 'Entrez ici la nouvelle référence produit', - 'Enter here the product name in the default language (%title)' => 'Entrez ici le nom du produit dans la langue par défaut (%title)', - 'Product price' => 'Prix du produit', - 'Enter here the product price in the default currency (%title)' => 'ntrez ici le prix du produit dans la langue par défaut (%title)', - 'Select a tax tule' => 'Sélectionnez une règle de taxes', - 'Select here the tax applicable to this product' => 'Sélectionnez ici la taxe applicable sur ce produit', - 'Product weight' => 'Poids du produit', - 'Kg' => 'Kg', - 'Enter here the product weight, in Kilogrammes' => 'Entrez ici le poids du produit, en Kilogrammes', + 'Create a new combination' => 'Créer une nouvelle combinaison', + 'Create a new content' => 'Créer un nouveau contenu', + 'Create a new country' => 'Créer un nouveau pays', + 'Create a new coupon' => 'Créer un nouveau code promo', + 'Create a new currency' => 'Créer une nouvelle devise', + 'Create a new customer' => 'Ajouter un client', + 'Create a new feature' => 'Créer une nouvelle caractéristique', + 'Create a new feature value' => 'Créer une nouvelle valeur de caractéristique', + 'Create a new folder' => 'Créer un nouveau dossier', + 'Create a new language' => 'Créer une nouvelle langue', + 'Create a new mailing template' => 'Créer un nouveau template de mailing', 'Create a new product' => 'Créer un nouveau produit', + 'Create a new product template' => 'Créer un nouveau template produit', + 'Create a new profile' => 'Créer un nouveau profil', + 'Create a new shipping configuration' => 'Créer une nouvelle configuration de livraison', + 'Create a new tax' => 'Créer une nouvelle taxe', + 'Create a new tax rule' => 'Créer une nouvelle règle de taxe', + 'Create a new variable' => 'Créer une nouvelle variable', + 'Create combinations' => 'Créer des combinaisons', + 'Create coupon' => 'Créer un code promo', + 'Create this address' => 'Créer cette adresse', + 'Create this attribute' => 'Créer cette déclinaison', + 'Create this category' => 'Créer cette catégorie', + 'Create this combination' => 'Créer cette combinaison', + 'Create this content' => 'Créer ce contenu', + 'Create this country' => 'Créer ce pays', + 'Create this currency' => 'Créer cette devise', + 'Create this customer' => 'Ajouter ce client', + 'Create this feature' => 'Créer cette caractéristique', + 'Create this folder' => 'Créer ce dossier', + 'Create this language' => 'Créer cette langue', + 'Create this mailing template' => 'Créer ce template de mailing', 'Create this product' => 'Créer ce produit', + 'Create this product template' => 'Créer ce template produit', + 'Create this shipping configuration' => 'Créer cette nouvelle configuration de livraison', + 'Create this value' => 'Créer cette valeur', + 'Create this variable' => 'Ajouter cette variable', + 'Currencies' => 'Monnaie', + 'Currency ISO 4217 Code' => 'Code ISO 4217 de la devise', + 'Currency name' => 'Nom de la devise', + 'Currency rate' => 'Taux de la devise', + 'Currency symbol' => 'Symbole de la monaie', + 'Current product template' => 'Gabarit de produit actuel', + 'Current quantity' => 'Quantité actuelle', + 'Current version' => 'Version en cours', + 'Customer' => 'Client', + 'Customer informations' => 'Informations client', + 'Customers' => 'Clients', + 'Customers list' => 'Liste des clients', + 'Dashboard' => 'Tableau de bord', + 'Date & Hour' => 'Date et heure', + 'Date of last order' => 'Date de la dernière commande', + 'Days before expiration' => 'Jours de validité', + 'Deactivate %title module' => 'Désactiver le module %title', + 'Default' => 'Défaut', + 'Default address' => 'Adresse par défaut', + 'Define here this product\'s accessories' => 'Définissez ici ces accessoires produit', + 'Delete' => 'Supprimer', + 'Delete a combination' => 'Supprimer une combinaison', + 'Delete a module' => 'Supprimer un module', + 'Delete a variable' => 'Supprimer une variable', + 'Delete address' => 'Supprimer cette adresse', + 'Delete administrator' => 'Supprimer un administrateur', + 'Delete an order' => 'Supprimer une commande', + 'Delete attribute' => 'Supprimer cette déclinaison', + 'Delete attribute value' => 'Supprimer une valeur de déclinaison', 'Delete category' => 'Supprimer cette catégorie', - 'Do you really want to delete this category and all its content ?' => 'Voulez-vous vraiment supprimer cette catégorie et tout ce qu\'elle contient ?', + 'Delete content' => 'Supprimer le contenu', + 'Delete country' => 'Supprimer le pays', + 'Delete currency' => 'Supprimer cette devise', + 'Delete customer' => 'Supprimer ce client', + 'Delete feature' => 'Supprimer cette caractéristique', + 'Delete feature value' => 'Supprimer la valeur de la caractéristique', + 'Delete folder' => 'Supprimer ce contenu', + 'Delete language' => 'Supprimer cette langue', + 'Delete mailing template' => 'Supprimer ce template de mailing', 'Delete product' => 'Supprimer ce produit', + 'Delete profile' => 'Supprimer le profil', + 'Delete shipping configuration' => 'Supprimer cette configuration de livraison', + 'Delete tax' => 'Supprimer la taxe', + 'Delete tax rule' => 'Supprimer une règle de taxe', + 'Delete template' => 'Supprimer ce template produit', + 'Delete this accessory' => 'Supprimer cet accessoire', + 'Delete this administrator' => 'Supprimer cet administrateur', + 'Delete this attribute' => 'Supprimer cette déclinaison', + 'Delete this category and all its contents' => 'Supprimer cette catégorie et tout ce qu\'elle contient ?', + 'Delete this combination' => 'Supprimer cette combinaison', + 'Delete this content' => 'Supprimer ce contenu', + 'Delete this country' => 'Supprimer ce pays', + 'Delete this currency' => 'Supprimer cette devise', + 'Delete this customer and all his orders' => 'Supprimer ce client et toutes ses commandes', + 'Delete this feature' => 'Supprimer cette caractéristique', + 'Delete this folder and all its contents' => 'Supprimer ce dossier et tous ces contenus', + 'Delete this language' => 'Supprimer cette langue', + 'Delete this mailing template' => 'Supprimer ce template de mailing', + 'Delete this module' => 'Supprimer ce module', + 'Delete this product' => 'Supprimer ce produit', + 'Delete this product attribute' => 'Supprimer cette déclinaison produit', + 'Delete this product feature' => 'Supprimer cette caractéristique produit', + 'Delete this product template' => 'Supprimer ce template produit', + 'Delete this profile' => 'Supprimer ce profil', + 'Delete this shipping configuration' => 'Supprimer cette configuration de livraison', + 'Delete this tax' => 'Supprimer cette taxe', + 'Delete this tax rule' => 'Supprimer cette règle de taxe', + 'Delete this value' => 'Supprimer cette valeur', + 'Delete this variable' => 'Supprimer cette variable', + 'Delete this zone' => 'Supprimer cette zone', + 'Delivery address' => 'Adresse de livraison', + 'Delivery module' => 'Module de livraison', + 'Delivery modules' => 'Modules de livraison', + 'Description' => 'Description', + 'Destinations' => 'Destinations', + 'Details' => 'Détails', + 'Disabled coupons' => 'Codes désactivés', + 'Discount' => 'Remise', + 'Do not use a product template' => 'Ne pas utiliser de gabarit', + 'Do you really want to add this attribute to all product templates ?' => 'Voulez-vous vraiment ajouter cette déclinaison de tous les templates produit ?', + 'Do you really want to add this feature to all product templates ?' => 'Voulez-vous vraiment ajouter cette caractéristique à tous les templates produit ?', + 'Do you really want to cancel this order ?' => 'Voulez-vous vraiment sup primer cette commande ?', + 'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?', + 'Do you really want to delete this administrator ?' => 'Confirmez-vous la suppression de cet adminisrateur ?', + 'Do you really want to delete this attribute ? It will be removed from all product templates.' => 'Voulez-vous vraiment supprimer cette déclinaison ? Elle sera supprimée de tous les templates produit.', + 'Do you really want to delete this attribute value ?' => 'Voulez-vous vraiment supprimer cette déclinaison ?', + 'Do you really want to delete this category and all its content ?' => 'Voulez-vous vraiment supprimer cette catégorie et tout ce qu\'elle contient ?', + 'Do you really want to delete this combination ?' => 'Voulez-vous vraiment supprimer cette combinaison ?', + 'Do you really want to delete this content ?' => 'Voulez-vous vraiment supprimer ce contenu ?', + 'Do you really want to delete this country ?' => 'Voulez-vous vraiment supprimer ce pays ?', + 'Do you really want to delete this currency ?' => 'Voulez-vous vraiment supprimer cette devise ?', + 'Do you really want to delete this customer ?' => 'Voulez-vous supprimer ce client ?', + 'Do you really want to delete this element ?' => 'Voulez-vous vraiment supprimer cet élément ?', + 'Do you really want to delete this feature ? It will be removed from all product templates.' => 'Voulez-vous vraiment supprimer cette caractéristique ? Elle sera supprimée de tous les templates produit', + 'Do you really want to delete this feature value ?' => 'Voulez-vous vraiment supprimer cette valeur de caractéristique ?', + 'Do you really want to delete this folder and all its content ?' => 'Voulez-vous vraiment supprimer ce dossier et tous ses contenus ?', + 'Do you really want to delete this language ?' => 'Voulez-vous vraiment supprimer cette langue ?', + 'Do you really want to delete this mailing template ?' => 'Voulez-vous vraiment supprimer ce template de mailing ?', + 'Do you really want to delete this module ?' => 'Voulez-vous vraiment supprimer ce module ?', 'Do you really want to delete this product ?' => 'Voulez-vous vraiment supprimer ce produit ?', - 'Enter new product position' => 'Classement du produit', + 'Do you really want to delete this profile ?' => 'Voulez-vous vraiment supprimer ce profil ?', + 'Do you really want to delete this shipping configuration ?' => 'Voulez-vous vraiment supprimer cette configuration de livraison ?', + 'Do you really want to delete this tax ?' => 'Voulez-vous vraiment supprimer cette taxe ?', + 'Do you really want to delete this tax rule ?' => 'Voulez-vous vraiment supprimer cette règle de taxe ?', + 'Do you really want to delete this template ? It will be removed from all products.' => 'Voulez-vous vraiment supprimer ce template ? Il sera supprimé de tous les produits.', + 'Do you really want to delete this variable ?' => 'Voulez-vous vraiment supprimer cette variable ?', + 'Do you really want to enable this element ?' => 'Voulez-vous vraiment activer cet élément ?', + 'Do you really want to remove the content from this folder ?' => 'Voulez-vous vraiment enlever le contenu de ce dossier ?', + 'Do you really want to remove the product from this category ?' => 'Voulez-vous vraiment supprimer ce produit de cette catégorie ?', + 'Do you really want to remove this accessory from the product ?' => 'Voulez-vous vraiment supprimer cet accessoire de ce produit ?', + 'Do you really want to remove this attribute from all product templates ? You\'ll loose all product related data for this attribute.' => 'Voulez-vous vraiment supprimer cette déclinaison de tous les templates produits ? Vous allez perdre toutes les informations produit liées à cette déclinaison.', + 'Do you really want to remove this attribute from the template ?' => 'Voulez-vous vraiment supprimer cette déclinaison de ce template ?', + 'Do you really want to remove this country ?' => 'Voulez-vous vraiment enlever ce pays ?', + 'Do you really want to remove this feature from all product templates ? You\'ll loose all product related data for this feature.' => 'Voulez-vous vraiment enlever cette caractéristique de tous les templates produit ? Vous allez perdre toutes les informations des produits liées à cette caractéristique.', + 'Do you really want to remove this feature from the template ?' => 'Voulez-vous vraiment supprimer cette caractéristique de ce template ?', + 'Do you really want to remove this related content ?' => 'Voulez-vous vraiment supprimer ce contenu lié ?', + 'Do you really want to remove this related content from the product ?' => 'Voulez-vous vraiment supprimer ce contenu lié de ce produit ?', + 'Do you really want to remove this zone ?' => 'Voulez-vous vraiment supprimer cette zone ?', + 'Do you really want to use this address by default ?' => 'Voulez-vous vraiment utiliser cette adresse comme adresse par défaut ?', + 'Document' => 'Document', + 'Document informations' => 'Informations sur le document', + 'Documents' => 'Documents', + 'Download invoice as PDF' => 'Télécharger la facture au format PDF', + 'Download purchase order as PDF' => 'Télécharger le bon de commande au format PDF', + 'Drop files to upload' => 'Déposez des fichiers à envoyer', + 'Drop tax here to create a tax group' => 'Déposer une taxe ici afin de créer un groupe de taxe', + 'Drop tax here to delete from group' => 'Déposer une taxe ici afin de la supprimer du groupe', + 'E-mail templates' => 'Template e-mail', + 'EAN Code' => 'Code EAN', + 'Ecotax is a tax wich add a defined amount (throug a product feature) to the product price.' => 'L\'écotaxe est une taxe qui ajoute un montant défini (grâce à une caractéristique produit) à prix du produit.', + 'Edit' => 'Editer', + 'Edit a country' => 'Modifier un pays', + 'Edit a currency' => 'Modifier une devise', + 'Edit a customer' => 'Editer un client', + 'Edit a customer address' => 'Modifier une adresse client', + 'Edit a document' => 'Modifier un document', + 'Edit a feature' => 'Modifier une caractéristique', + 'Edit a language' => 'Modifier une langue', + 'Edit a mailing template' => 'Modifier un template de mailing', + 'Edit a module' => 'Modifier un module', + 'Edit a profile' => 'Modifier un profil', + 'Edit a shipping configuration' => 'Modifier une configuration de livraison', + 'Edit a shipping zone' => 'Modifier la zone de livraison', + 'Edit a system variable' => 'Modifier une variable système', + 'Edit a tax' => 'Modifier une taxe', + 'Edit a tax rule' => 'Modifier une règle de taxe', + 'Edit a template' => 'Modifier un template', + 'Edit an attribute' => 'Modifier une déclinaison', + 'Edit an image' => 'Modifier une image', + 'Edit an order' => 'Editer une commande', + 'Edit attribute "%name"' => 'Modifier la déclinaison "%name"', 'Edit category' => 'Editer la catégorie', 'Edit category %title' => 'Editer le titre de la catégorie : %title', - 'Thelia configuration' => 'Configuration thelia', - 'Product catalog configuration' => 'Configuration du catalogue produit', - 'Product templates' => 'Template produit', - 'Product features' => 'Caractéristiques produit', - 'Mailing templates' => 'Template e-mail', - 'Currencies' => 'Monnaie', - 'Taxes rules' => 'Règles de taxes', - 'Shipping configuration' => 'Configuration du transport', - 'Countries' => 'Pays', - 'Shipping zones' => 'Zones de livraison', - 'System parameters' => 'Paramètres système ', - 'System variables' => 'Gestion des variables', - 'Administration profiles' => 'Gestion des administrateurs', - 'Languages & URLs' => 'Langues et URLs', - 'Mailing system' => 'Envoi des e-mails', - 'System logs' => 'Journal des logs', - 'And' => 'Et', - 'Edit' => 'Editer', - 'Delete' => 'Supprimer', - 'Code :' => 'Code', - 'code' => 'code', - 'Title :' => 'Titre', - 'title' => 'titre', - 'Is enabled' => 'Est valide', + 'Edit content' => 'Modifier le contenu', + 'Edit content %title' => 'Modifier le contenu %title', + 'Edit country "%name"' => 'Modifier le pays "%name"', + 'Edit currency "%name"' => 'Modification de la devise "%name"', + 'Edit customer %firstname %lastname' => 'Modifier le client %firstname %lastname', + 'Edit delivery address' => 'Editer l\'adresse de livraison', + 'Edit document "%name"' => 'Modifier le document "%name"', + 'Edit feature "%name"' => 'Modifier la caractéristique "%name"', + 'Edit folder' => 'Modifier le dossier', + 'Edit folder %title' => 'Modifier le dossier %title', + 'Edit image "%name"' => 'Modifier l\'image "%name"', + 'Edit information in %lng' => 'Modifier les information en %lng', + 'Edit invoice address' => 'Editer l\'adresse de facturation', + 'Edit mailing template "%name"' => 'Modifier le template de mailing "%name"', + 'Edit next category' => 'Modifier la catégorie suivante', + 'Edit next content' => 'Modifier le contenu suivant', + 'Edit next folder' => 'Modifier le dossier suivant', + 'Edit next product' => 'Modifier le produit suivant', + 'Edit order address' => 'Editer l\'adresse de commande', + 'Edit previous category' => 'Modifier la catégorie précedente', + 'Edit previous content' => 'Modifier le contenu précèdent', + 'Edit previous folder' => 'Modifier le dossier précédent', + 'Edit previous product' => 'Modifier le produit précèdent', + 'Edit prices in %curr' => 'Modifier les prix en %curr', + 'Edit product' => 'Modifier le produit', + 'Edit product %title' => 'Modifier le produit %title', + 'Edit shipping configuration %title' => 'Modifier la configuration de livraison %title', + 'Edit shipping zone %title' => 'Modifier la zone de livraison %title', + 'Edit tax rule taxes' => 'Modifier les taxes de la règle de taxe', + 'Edit template "%name"' => 'Modifier le template "%name"', + 'Edit this address' => 'Editer cette adresse', + 'Edit this category' => 'Editer cette catégorie', + 'Edit this content' => 'Modifier ce contenu', + 'Edit this customer' => 'Modifier ce client', + 'Edit this folder' => 'Modifier ce dossier', + 'Edit this language' => 'Modifier cette langue', + 'Edit this module' => 'Modifier ce module', + 'Edit this order' => 'Editer cette commande', + 'Edit this product' => 'Modifier ce produit', + 'Edit variable %name' => 'Modifier de la variable "%name"', + 'Editing %cat' => 'Edition de %cat', + 'Editing %fold' => 'En cours de modification de %fold', + 'Editing %title' => 'En cours de modification de %title', + 'Editing attribute "%name"' => 'En cours de modification de la déclinaison "%name"', + 'Editing country "%name"' => 'En cours de modification du pays "%name"', + 'Editing currency "%name"' => 'En cours de modification de la devise "%name"', + 'Editing customer "%name"' => 'Edition du client "%name"', + 'Editing document "%name"' => 'En cours de modification du document "%name"', + 'Editing feature "%name"' => 'En cours de modification de la caractéristique "%name"', + 'Editing image "%name"' => 'En cours de modification de l\'image "%name"', + 'Editing mailing template "%name"' => 'En cours de modification du template de mailing "%name"', + 'Editing module' => 'En cours de modification du module', + 'Editing profile' => 'En cours du profil', + 'Editing shipping configuration "%name"' => 'En cours de modification de la configuration de livraison "%name"', + 'Editing shipping zone "%name"' => 'En cours de modification de la zone de livraison "%name"', + 'Editing tax' => 'En cours de modification de la taxe', + 'Editing tax rule' => 'En cours de modification de la règle de taxe', + 'Editing template "%name"' => 'En cours de modification du template "%name"', + 'Editing variable "%name"' => 'Modification de la variable "%name" ', + 'Email address' => 'Adresse e-mail', + 'Email used when you send an email to your customers (Order confirmations, etc).' => 'Email utilisé lorsque vous envoyez un email à vos clients (Confirmation de commande, etc...).', + 'Enable remote SMTP use : ' => 'Activer l\'utilisation d\'un serveur SMTP distant:', + 'Enable/Disable' => 'Activer/Désactiver', + 'Enabled coupons' => 'Codes promo disponibles', + 'Encryption' => 'Chiffrement', + 'Encryption :' => 'Chiffrement:', + 'Enter here all possible attribute values.' => 'Entrez ici toutes les valeurs de déclinaison possible.', + 'Enter here all possible feature values. To get a free text feature in product forms, don\'t add any value.' => 'Entrez ici toutes les caractéristiques possibles. Afin d\'avoir un texte libre dans le formulaire du produit, n\'ajoutez aucune valeur.', + 'Enter here the attribute name in the default language (%language_name)' => 'Entrez ici le nom de la déclinaison dans la langue par défaut (%language_name)', + 'Enter here the category name in the default language (%title)' => 'Entrer ici le nom de la catégorie dans la langue par défaut (%title)', + 'Enter here the content name in the default language (%title)' => 'Entrez ici le nom du contenu dans le language par défaut (%title)', + 'Enter here the currency name in the default language (%title)' => 'Entrez ici le nom de la devise dans la langue par défaut (%title)', + 'Enter here the feature name in the default language (%title)' => 'Entrez ici le nom de la caractéristique dans la langue par défaut (%title)', + 'Enter here the feature value as free text' => 'Indiquez ici la valeur de la caractéristique', + 'Enter here the folder name in the default language (%title)' => 'Entrez ici le nom du dossier dans la langue par défaut (%title)', + 'Enter here the mailing template purpose in the default language (%title)' => 'Entrez ici l\'objectif du template de mailing dans le language par défaut (%title)', + 'Enter here the product name in the default language (%title)' => 'Entrez ici le nom du produit dans la langue par défaut (%title)', + 'Enter here the product price in the default currency (%title)' => 'ntrez ici le prix du produit dans la langue par défaut (%title)', + 'Enter here the product reference' => 'Entrez ici la nouvelle référence produit', + 'Enter here the product weight, in Kilogrammes' => 'Entrez ici le poids du produit, en Kilogrammes', + 'Enter here the template name in the default language (%title)' => 'Entrez ici le nom du template dans la langue par défaut (%title)', + 'Enter here the value in the current edit language (%language_name)' => 'Entrez ici la valeur dans la langue courante (%language_name)', + 'Enter here the value in the current edit language (%title)' => 'Entrez ici la valeur dans le langue courante (%title)', + 'Enter new accessory position' => 'Modifier la position de l\'accessoire', + 'Enter new attribute position' => 'Modifier la position de la déclinaison', + 'Enter new category position' => 'Classement de la catégorie', + 'Enter new content position' => 'Modifier la position du contenu', + 'Enter new currency position' => 'Modifier la position de la devise', + 'Enter new feature position' => 'Modifier la position de la caractéristique', + 'Enter new folder position' => 'Modifier la position du dossier', + 'Enter new product position' => 'Classement du produit', + 'Enter new value position' => 'Entrez une nouvelle position', + 'Enter one or more IP V4 addresses separated by ";". Leave empty to display logs for all IP addresses' => 'Entrez une ou plusieurs adresses IP V4 séparées par un ";". Laissez vide afin d\'afficher les logs pour toutes les adresses IP', + 'Enter one or more file names without path separated by ";". Use "!" before a file name to exclude it. Use "*" to activate logs for all files.' => 'Entrez un ou plusieurs nom de fichiers sans chemin séparés par un ";". Utilisez "!" avant un nom de fichier pour l\'exclure. Utilisez "*" afin d\'activer les logs pour tous les fichiers.', + 'Error' => 'Erreur', + 'Example :' => 'Exemple:', + 'Existing combinations will be deleted. Do you want to continue ?' => 'Les combinaisons existantes seront supprimées. Voulez-vous continuer ?', + 'Expiration date' => 'Date de fin', + 'Expiration date :' => 'Date de fin de validité', + 'Failed to get converted prices. Please try again.' => 'Erreur lors de la récupération des prix convertis. Veuillez réessayer.', + 'Failed to get prices. Please try again.' => 'Erreur lors de la récupération des prix. Veuillez réessayer.', + 'Feature Name' => 'Nom de la caractéristique', + 'Feature information' => 'Informations sur la caractéristique', + 'Feature title' => 'Titre de la caractéristique', + 'Feature value' => 'Valeur de la caractéristique', + 'Feature value for this product' => 'Valeur de la caractéristique', + 'Feature values' => 'Valeurs de la caractéristique', + 'Features' => 'Caractéristiques', + 'File' => 'Fichier ', + 'File names' => 'Noms du fichier', + 'Files manager' => 'Gestionnaire de fichiers', + 'First Name' => 'Prénom', + 'First name' => 'Prénom', + 'First orders' => 'Premières commandes', + 'FirstName' => 'Prénom', + 'Firstname' => 'Prénom', + 'Folder created on %date_create. Last modification: %date_change' => 'Dossier créé le %date_create. Dernière modification le %date_change', + 'Folder title' => 'Titre du dossier', + 'Folders' => 'Dossier', + 'Folders in %fold' => 'Dossier dans %fold', + 'French 19.6% VAT is a tax which add a 19.6% tax to the product price.' => 'La TVA française de 19.6% est une taxe qui ajoute 19.6% au prix du produit.', + 'French 19.6% VAT with ecotax is the applicance of the ecotax (on the product price) then the applicance of the 19.6% tax (on the product price + the ecotax amount).' => 'La TVA française de 19.6% avec écotaxe est l\'application de l\'écotaxe (sur le prix du produit) puis l\'application de la taxe de 19.6% (sur le prix du produit + le montant écotaxe).', + 'From' => 'De', + 'Front-office templates' => 'Template Front-office', + 'General' => 'Général', + 'General configuration' => 'Configuration générale', + 'General description' => 'Description générale', + 'Go to administration home' => 'Aller à l\'accueil de l\'interface d\'administration', + 'H:i:s' => 'H:i:s', + 'HTML version of this message' => 'Version HTML de ce message', + 'Home' => 'Accueil', + 'Host' => 'Host', + 'Host :' => 'Host', + 'ID' => 'ID', + 'IP Addresses' => 'Adresse IP', + 'ISO 4217 Code' => 'Code ISO 4217', + 'ISO 4217 code' => 'Code ISO 4217', + 'ISO 639 Code' => 'Code ISO 639', + 'ISO Code' => 'Code ISO', + 'If a translation is missing or incomplete :' => 'Si une traduction est manquante ou incomplète:', + 'If yes, redirections through Redirect::exec() will be displayed as links' => 'Si oui, les redirections seront faites via Redirect::exec() seront affichées comme liens', + 'Il seems that this string contains a Smarty variable ($). If \'s the case, it cannot be transleted properly.' => 'Il semble que cette chaîne contient une variable Smarty($). Si c\'est le cas, elle ne pourra pas être traduire correctement.', + 'Image' => 'Image', + 'Image information' => 'Information sur l\'image', + 'Images' => 'Images', + 'Impossible to change default country. Please contact your administrator or try later' => 'Impossible de modifier le pays par défaut. Veuillez contacter votre administrateur ou réessayer plus tard', + 'Impossible to change default languages. Please contact your administrator or try later' => 'Impossible de modifier la langue par défaut. Veuillez contacter votre administrateur ou essayer plus tard', + 'In order to manges your shop taxes you can manage' => 'Pour pouvoir gérer les taxes de votre magasin vous pouvez gérer', + 'In page' => 'Sur la page:', + 'In pages:' => 'Sur les pages:', + 'Install a new module' => 'Installer un nouveau module', + 'Invoice and Delivery' => 'Livraison et facturation', + 'Invoice date' => 'Facture date', + 'Invoice informations' => 'Informations de facturation', + 'Invoice reference' => 'Facture ref', 'Is available on special offers' => 'Est valide sur les offres promotionnelles', 'Is cumulative' => 'Est cumulable', + 'Is disabled' => 'Est désactivé', + 'Is enabled' => 'Est valide', 'Is removing postage' => 'Offre les frais de port', - 'Expiration date :' => 'Date de fin de validité', - 'yyyy-mm-dd' => 'jjjj--mm--aa', 'Is unlimited' => 'Est illimité', - 'Max usage :' => 'Utilisations max', - 'max usage' => 'utilisations max', - 'Type :' => 'Type', - 'Please select a coupon type' => 'Merci d\'entrer le type de code', - 'Amount :' => 'Montant', - '14.50' => '14.50', - 'Short description :' => 'Description courte', - 'short description' => 'description court', - 'Long description :' => 'Description longue', - 'long description' => 'description longue', - 'Save your modifications' => 'Enregistrer les modifications', - 'Conditions' => 'Conditions', - 'Save this condition' => 'Enregistrer cette condition', - 'Condition\'s category :' => 'Type de condition', - 'Please select a condition category' => 'Merci d\'entrer le type de condition', - 'Coupon' => 'Code promo', - 'Coupons : ' => 'Codes promo', - 'Create a new coupon' => 'Créer un nouveau code promo', - 'Browse' => 'Parcourir', - 'List' => 'Liste', - 'Enabled coupons' => 'Codes promo disponibles', - 'Code' => 'Code', - 'Days before expiration' => 'Jours de validité', - 'Usage left' => 'Utilisation restante', - 'Unlimited' => 'Illimité', - 'Disabled coupons' => 'Codes désactivés', - 'Expiration date' => 'Date de fin', - 'Amount' => 'Montant', - 'Update coupon' => 'Mettre à jour le code', - 'Please retry' => 'Merci de réessayer', - 'Please select another condition' => 'Merci de sélectionner une autre condition', - 'Edit a customer' => 'Editer un client', - 'Editing customer "%name"' => 'Edition du client "%name"', - 'Customer informations' => 'Informations client', - 'Firstname' => 'Prénom', + 'Kg' => 'Kg', + 'Label' => 'Libellé', + 'Language name' => 'Nom de la langue', + 'Language title' => 'Titre de la langue', + 'Languages' => 'Langues', + 'Languages & URLs' => 'Langues et URLs', + 'Languages management' => 'Gestion des langues', + 'Last Name' => 'Nom', + 'Last name' => 'Nom', + 'Last order amount' => 'Montant de la dernière commande', + 'LastName' => 'Nom', 'Lastname' => 'Nom', - 'Default address' => 'Adresse par défaut', - 'Address' => 'Adresse', - 'Additional address' => 'Adresse complémentaire', - 'Zip code' => 'Code postal', - 'City' => 'Ville', - 'Other addresses' => 'Autres adresses', - 'Add a new address' => 'Ajouter une nouvelle adresse', - 'Phone' => 'Téléphone', - 'Edit this address' => 'Editer cette adresse', - 'Use this address by default' => 'Utiliser comme adresse par défaut', - 'Delete this customer and all his orders' => 'Supprimer ce client et toutes ses commandes', - 'orders for this customer' => 'commandes pour ce client', - 'Order n°' => 'Commande n° ', - 'Date & Hour' => 'Date et heure', - 'Status' => 'Etat', - 'Create this address' => 'Créer cette adresse', - 'Use address by default' => 'Utiliser comme adresse par défaut', - 'Do you really want to use this address by default ?' => 'Voulez-vous vraiment utiliser cette adresse comme adresse par défaut ?', - 'Delete address' => 'Supprimer cette adresse', - 'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?', - 'Customer' => 'Client', - 'Customers list' => 'Liste des clients', - 'Add a new Customer' => 'Ajouter un client', - 'Edit this customer' => 'Modifier ce client', - 'Send a mail to this customer' => 'Contacter ce client par mail', - 'Email address' => 'Adresse e-mail', - 'Create a new customer' => 'Ajouter un client', - 'Create this customer' => 'Ajouter ce client', - 'Delete customer' => 'Supprimer ce client', - 'Do you really want to delete this customer ?' => 'Voulez-vous supprimer ce client ? ', - 'Back' => 'Retour', - 'Save' => ' Enregistrer', - 'Description' => 'Description', - 'Back-office home' => 'Accueil administration', - 'Dashboard' => 'Tableau de bord', - 'Sales' => 'Ventes', - 'New customers' => 'Nouveaux clients', - 'First orders' => 'Premières commandes', - 'Aborted orders' => 'Paniers abandonnés', - 'Shop Informations' => 'Informations sur le magasin', - 'Products' => 'Produits', - 'Online products' => 'Produits en ligne', - 'Offline products' => 'Produits hors ligne', - 'Sales statistics' => 'Statistiques de vente', - 'Today' => 'Aujourd\'hui', - 'This month' => 'Ce mois', - 'This year' => 'Cette année', - 'Overall sales' => 'Total des ventes', - 'Sales excluding shipping' => 'Ventes hors frais de port', - 'Yesterday sales' => 'Ventes de la veille', - 'Average cart' => 'Panier moyen', - 'Previous month sales' => 'Ventes du mois précédent', - 'Previous year sales' => 'Ventes de l\année précédente', - 'Thelia informations' => 'Informations Thelia', - 'Current version' => 'Version en cours', 'Latest version available' => 'Dernière version disponible', + 'Leave empty to keep current password' => 'Laisser ce champ vide pour ne pas modifier le mot de passe', + 'Lire la suite' => 'Lire la suite', + 'List' => 'Liste', + 'Loading Thelia lastest news...' => 'Chargement des dernières nouvelles de Thelia...', + 'Locale' => 'Locale', + 'Log lines format' => 'Format de la ligne de log', + 'Log lines header format. You may use the following variables: ' => 'Format de l\'en-tête des lignes de log. Vous pouvez utiliser les variables suivantes:', + 'Login' => 'Connexion', + 'Logout' => 'Se déconnecter', + 'Long description :' => 'Description longue', + 'Mailing system' => 'Envoi des e-mails', + 'Mailing template name' => 'Nom du template de mailing', + 'Mailing template purpose' => 'Objectif du template de mailing', + 'Mailing templates' => 'Template e-mail', + 'Manage module rights' => 'Gestion des accès aux modules', + 'Manage resource rights' => 'Gérer les droits d\'accès aux ressources', + 'Manage taxes' => 'Gérer les taxes', + 'Manage the tax rule taxes appliance order' => 'Gérer les règles de taxe et leur ordre d\'application', + 'Max usage :' => 'Utilisations max', + 'May be cumulative' => 'Peut être cumulé', + 'Message created on %date_create. Last modification: %date_change' => 'Message créé le %date_create. Dernière modification le %date_change', + 'Message level' => 'Niveau du message', + 'Messages which have a level greater or equal to the selected level will be added to the log destinations. ' => 'Messages qui ont un niveau supérieur ou égale au niveau sélectionné seront ajoutés au logs.', + 'Module' => 'Module', + 'Module access rights' => 'Droits d\'accès aux modules', + 'Module created on %date_create. Last modification: %date_change' => 'Module créé le %date_create. Dernière modification le %date_change', + 'Modules' => 'Modules', + 'More information about ISO 4217' => 'Plus d\'information à propos de l\'ISO 4217', + 'NONE' => 'AUCUN', + 'Name' => 'Nom', + 'New' => 'Nouveau', + 'New customers' => 'Nouveaux clients', 'News' => 'Actualités', - 'Click here' => 'Cliquez ici', - 'Editing %cat' => 'Edition de %cat', 'No' => 'Non', - 'Yes' => 'Oui', + 'No Folders found' => 'Aucun dossier trouvé', + 'No area defined with this id' => 'Pas de zone définie avec cette id', + 'No available content in this folder' => 'Ce dossier est vide de contenus', + 'No available product in this category' => 'Aucun produit disponible pour cette catégorie', + 'No available value for this attribute' => 'Aucune valeur disponible pour cette déclinaison', + 'No categories found' => 'Aucune catégorie trouvée', + 'No country has been created yet. Click the + button to create one.' => 'Aucun pays n\'a encore été créé. Cliquez sur le bouton + pour en créer un', + 'No currency has been created yet. Click the + button to create one.' => 'Aucune devise n\'a encore été crée. Cliquez sur le bouton + pour en créer une.', + 'No folders found' => 'Aucun dossier n\'a été trouvé.', + 'No mailing template has been created yet. Click the + button to create one.' => 'Aucun template de mailing n\'a encore été créé. Cliquez sur le bouton + pour en ajouter un.', + 'No product attribute has been created yet. Click the + button to create one.' => 'Aucune déclinaison produit n\'a encore été créée. Cliquez sur le bouton + pour en créer une.', + 'No product feature has been created yet. Click the + button to create one.' => 'Aucune caractéristique produit n\'a encore été ajoutée. Cliquez sur le bouton + pour en créer une.', + 'No product template has been created yet. Click the + button to create one.' => 'Aucun template produit n\'a encore été créé. Cliquez sur le bouton + pour en créer une.', + 'No value has been created yet. Click the + button to create one.' => 'Aucune valeur n\'a encore été crée. Cliquez sur le bouton + pour en créer une.', + 'N° ISO' => 'N° ISO', 'OK' => 'OK', - 'Save and close' => 'Enregistrer et fermer', - 'Quantity' => 'Quantité', - 'deactivate' => 'désactiver', - 'en_US' => 'en_US', - 'd-m-Y' => 'j-m-A', - 'Username' => 'Nom d\'utilisateur', - 'Host :' => 'Host', - 'Host' => 'Host', - 'Port :' => 'Port', - 'Port' => 'Port', - 'Username :' => 'Nom d\'utilisateur', - 'Password :' => 'Mot de passe', - 'Source IP :' => 'IP source', - 'Source IP' => 'IP source', - 'Variable name' => 'Nom de la variable', - 'Purpose' => 'Objet', - 'Edit an order' => 'Editer une commande', + 'Offline products' => 'Produits hors ligne', + 'Online' => 'En ligne', + 'Online products' => 'Produits en ligne', + 'Oops! An Error Occurred' => 'Oops ! Une erreur est survenue', + 'Operator :' => 'Opérateur:', + 'Or' => 'Ou', + 'Order n°' => 'Commande n°', 'Ordered products' => 'Produits commandés', - 'Invoice and Delivery' => 'Livraison et facturation', - 'Cart' => 'Panier', - 'Product' => 'Produit', - 'Unit. price' => 'Prix unitaire', - 'Tax' => 'Taxes', - 'Unit taxed price' => 'Prix unitaire TTC', - 'Taxed total' => 'Montant total des taxes', - 'Total without discount' => 'Montant total hors remises', - 'Discount' => 'Remise', - 'Coupon code' => 'Code promo', - 'Total including discount' => 'Total avec remise', - 'Postage' => 'Frais de livraison', - 'Total' => 'Total', + 'Orders' => 'Commandes', + 'Other addresses' => 'Autres adresses', + 'Overall sales' => 'Total des ventes', + 'PDF templates' => 'Template PDF', + 'PDF | Invoice' => 'Facure PDF', + 'PDF | Purchase order' => 'Bon de commande PDF', + 'Page not found' => 'Page non trouvée', + 'Parameters' => 'Paramètres', + 'Password' => 'Mot de passe', + 'Password :' => 'Mot de passe', 'Payment information' => 'Informations de paiement', 'Payment module' => 'Module de paiement', - 'Transaction reference' => 'Référence de la transaction', - 'Delivery module' => 'Module de livraison', - 'tracking reference' => 'Reference Tracking', - 'Invoice informations' => 'Informations de facturation', - 'Download invoice as PDF' => 'Télécharger la facture au format PDF', - 'PDF | Invoice' => 'Facure PDF', - 'Edit invoice address' => 'Editer l\'adresse de facturation', - 'Invoice reference' => 'Facture ref', - 'Invoice date' => 'Facture date', - 'Street address' => 'Adresse', - 'Country' => 'Pays', - 'Delivery address' => 'Adresse de livraison', - 'Download purchase order as PDF' => 'Télécharger le bon de commande au format PDF', - 'PDF | Purchase order' => 'Bon de commande PDF', - 'Edit delivery address' => 'Editer l\'adresse de livraison', - 'Edit order address' => 'Editer l\'adresse de commande ', - 'Confirm changes' => 'Valider les modifications', - 'Edit this order' => 'Editer cette commande ', - 'Cancel this order' => 'Annuler cette commande', - 'Delete an order' => 'Supprimer une commande', - 'Do you really want to cancel this order ?' => 'Voulez-vous vraiment sup primer cette commande ? ', - 'View' => 'Voir', - 'customer ref' => 'ref client', - 'company' => 'entreprise', - 'firstname & lastname' => 'Prénom & nom', - 'last order' => 'Dernière commande', - 'order amount' => 'Montant de la commande', - 'Add' => 'Ajouter', - 'Warning' => 'Attention', - 'Edit a system variable' => 'Modifier une variable système', - 'Editing variable "%name"' => 'Modification de la variable "%name" ', - 'Edit variable %name' => 'Modifier de la variable "%name" ', - 'Variable value' => 'Valeur de la variable', - 'Variable created on %date_create. Last modification: %date_change' => 'Variable créée le %date_create. Dernière modification: %date_change', - 'Sorry, variable ID=%id was not found.' => 'Désolé, la variable ID=%id n\'a pas été trouvée.', - 'Thelia System Variables' => 'Variables Thelia', - 'Thelia system variables' => 'Variables Thelia', - 'Add a new variable' => 'Ajouter une variable', + 'Payment modules' => 'Modules de payment', + 'Period' => 'Période', + 'Phone' => 'Téléphone', + 'Phone number' => 'Numéro de téléphone', + 'Please retry' => 'Merci de réessayer', + 'Please save your Coupon in oder to affect it some conditions' => 'Veuillez sauvegarder votre code promo afin de pouvoir lui affecter des conditions', + 'Please select a condition category' => 'Merci d\'entrer le type de condition', + 'Please select a coupon type' => 'Merci d\'entrer le type de code', + 'Please select another condition' => 'Merci de sélectionner une autre condition', + 'Please select items to translate' => 'Veuillez sélectionner les éléments à traduire', + 'Please select the B.O. template to translate' => 'Veuillez sélectionnez le template B.O. à traduire', + 'Please select the E-mail template to translate' => 'Veuillez sélectionnez le template e-mail à traduire', + 'Please select the F.O. template to translate' => 'Veuillez sélectionnez le template F.O. à traduire', + 'Please select the PDF template to translate' => 'Veuillez sélectionnez le template PDF à traduire', + 'Please select the module to translate' => 'Veuillez sélectionner le module à traduire', + 'Please wait, loading' => 'Veuillez patienter, chargement', + 'Port' => 'Port', + 'Port :' => 'Port', + 'Position' => 'Position', + 'Post Scriptum' => 'Post-scriptum', + 'Postage' => 'Frais de livraison', + 'Postscriptum' => 'Post-scriptum', + 'Preview' => 'Aperçu', + 'Preview category page' => 'Aperçu de la page catégorie', + 'Preview folder page' => 'Aperçu de la page dossier', + 'Preview product page' => 'Aperçu de la page produit', + 'Previous month sales' => 'Ventes du mois précédent', + 'Previous year sales' => 'Ventes de l\année précédente', + 'Price excl. taxes' => 'Prix taxes exclues', + 'Price incl. taxes' => 'Prix taxes incluses', + 'Price
w/ taxes (%currency)' => 'Prix
avec taxes (%currency)', + 'Price
w/o taxes (%currency)' => 'Prix
sans taxes (%currency)', + 'Pricing' => 'Tarifs', + 'Product' => 'Produit', + 'Product Attributes' => 'Déclinaisons du produit', + 'Product EAN Code' => 'Code EAN du produit', + 'Product Features' => 'Caractéristiques du produit', + 'Product accessories' => 'Accessoires du produit', + 'Product attributes' => 'Déclinaisons produit', + 'Product catalog configuration' => 'Configuration du catalogue produit', + 'Product created on %date_create. Last modification: %date_change' => 'Produit créé le %date_create. Dernière modification le %date_change', + 'Product features' => 'Caractéristiques produit', + 'Product price' => 'Prix du produit', + 'Product price including taxes' => 'Prix du produit taxes incluses', + 'Product reference' => 'Référence produit', + 'Product templates' => 'Template produit', + 'Product title' => 'Titre du produit', + 'Product weight' => 'Poids du produit', + 'Products' => 'Produits', + 'Products in %cat' => 'Produits dans %cat', + 'Profil' => 'Profil', + 'Profile' => 'Profil', + 'Profile code' => 'Code du profil', + 'Profile created on %date_create. Last modification: %date_change' => 'Profil créé le %date_create. Dernière modification le %date_change', + 'Profiles' => 'Profils', + 'Promotion' => 'Promotion', + 'Published by OpenStudio' => 'Edité par OpenStudio', + 'Purpose' => 'Objet', + 'Quantity' => 'Quantité', + 'Quickly create combinations using the combination builder' => 'Créer rapidement une combinaison via le constructeur de combinaison', + 'Rate' => 'Taux', + 'Rate from Euro' => 'Taux à partir de l\'Euro', + 'Rate in €' => 'Taux en €', + 'Read the documentation of this module' => 'Lire la documentation du module', + 'Reference' => 'Reference', + 'Registration date' => 'Date d\'inscription', + 'Related content' => 'Contenu associé', + 'Remove an accessory' => 'Enlever un accessoire', + 'Remove associated folder' => 'Enlever le dossier associé', + 'Remove attribute' => 'Enlever la déclinaison', + 'Remove country' => 'Enlever ce pays', + 'Remove feature' => 'Enlever la caractéristique', + 'Remove from all product templates' => 'Enlever de tous les templates produit', + 'Remove from category' => 'Enlever de la catégorie', + 'Remove related content' => 'Enlever les contenus liés', + 'Remove selected values' => 'Enlever les valeur sélectionnées', + 'Remove the product from this category' => 'Enlever ce produit de cette catégorie', + 'Remove this attribute from all product templates' => 'Enlever cette déclinaison de tous les template produit', + 'Remove this feature from all product templates' => 'Enlever cette caractéristique de tous les templates produit', + 'Remove zone' => 'Supprimer la zone', + 'Resource' => 'Ressources', + 'Resource access rights' => 'Droits d\'accès aux ressources', + 'Resources' => 'Ressources', + 'Rewritten URL' => 'URL réécrites', + 'Rights' => 'Droits', + 'Sale' => 'Vente', + 'Sale price incl. taxes' => 'Prix de vente taxes incluses', + 'Sale price
w/ taxes (%currency)' => 'Prix de vente
sans taxes (%currency)', + 'Sale price
w/o taxes (%currency)' => 'Prix de vente
avec taxes (%currency)', + 'Sales' => 'Ventes', + 'Sales excluding shipping' => 'Ventes hors frais de port', + 'Sales statistics' => 'Statistiques de vente', + 'Save' => ' Enregistrer', + 'Save and close' => 'Enregistrer et fermer', 'Save chages' => 'Enregistrer les modifications', 'Save changes' => 'Enregistrer les modifications', - 'Action' => 'Action', - 'Change this variable' => 'Modifier cette variable', - 'Cancel changes and revert to original value' => 'Annuler les modifications et revenir à la version antérieure', - 'Delete this variable' => 'Supprimer cette variable', + 'Save this address' => 'Sauvegarder cette adresse', + 'Save this condition' => 'Enregistrer cette condition', + 'Save your modifications' => 'Enregistrer les modifications', + 'Search' => 'Recherche', + 'Select a category and click (+) to add it to the additional category list' => 'Sélectionnez une catégorie et cliquez sur (+) pour l\'ajouter à la liste de catégorie additionnelle', + 'Select a category to get its products' => 'Sélectionnez une catégorie pour avoir ses produits', + 'Select a category...' => 'Sélectionnez une catégorie...', + 'Select a content and click (+) to add it to this category' => 'Selectionnez un contenu et cliquez sur (+) pour l\'ajouter à cette catégorie', + 'Select a content and click (+) to add it to this folder' => 'Sélectionnez un contenu et cliquez sur (+) pour l\'ajouter à ce dossier', + 'Select a content and click (+) to add it to this product' => 'Chosiissez un contenu, et cliquez [+] pour l\'attacher au produit', + 'Select a folder and click (+) to add it to the additional folder list' => 'Sélectionnez un dossier et cliquez sur (+) afin de l\'ajouter à la liste des dossiers aditionnels', + 'Select a folder content...' => 'Choisissez un dossier de contenu...', + 'Select a folder to get its content' => 'Choisissez un dossier de contenu pour lister ses contenus', + 'Select a folder...' => 'Choisissez un dossier de contenu...', + 'Select a product and click (+) to add it as an accessory' => 'Sélectionnez un produit et cliquez sur (+) pour lui ajouter un accessoire', + 'Select a product...' => 'Sélectionnez un produit...', + 'Select a tax tule' => 'Sélectionnez une règle de taxes', + 'Select a value click (+) to add it to the combination' => 'Sélectionnez une valeur et cliquez sur (+) pour l\'ajouter à la combinaison', + 'Select an attribute and click (+) to add it to this template' => 'Sélectionnez une déclinaison et cliquez sur (+) pour l\'ajouter à ce template', + 'Select an attribute and click (+) to view available values' => 'Sélectionnez une déclinaison et cliquez sur (+) pour voir les valeurs disponibles', + 'Select an attribute value...' => 'Sélectionnez une valeur de déclinaison...', + 'Select an attribute...' => 'Sélectionnez une déclinaison...', + 'Select an feature and click (+) to add it to this template' => 'Selectionnez une caractéristique et cliquez sur (+) pour l\'ajouter à ce template', + 'Select an feature...' => 'Sélectionnez une caractéristique...', + 'Select attribute values to combine. You may enter a default value for some of the fields of the generated combinations.' => 'Sélectionnez les valeurs de déclinaison à combiner. Vous pouvez entrer une valeur par défaut pour certains champs des combinaisons générées.', + 'Select here the tax applicable to this product' => 'Sélectionnez ici la taxe applicable sur ce produit', + 'Select the E-mail template you want to translate' => 'Sélectionnez le template E-mail que vous voulez traduire', + 'Select the PDF template you want to translate' => 'Sélectionnez le template PDF que vous voulez traduire', + 'Select the back-office template you want to translate' => 'Sélectionnez le template Back-office que vous voulez traduire', + 'Select the front-office template you want to translate' => 'Sélectionnez le template Front-office que vous voulez traduire', + 'Select the module you want to translate' => 'Sélectionnez le module que vous voulez traduire', + 'Select which items you want to translate' => 'Sélectionnez quels éléments vous voulez traduire', + 'Send a mail to this customer' => 'Contacter ce client par mail', + 'Send files' => 'Envoyer des fichiers', + 'Set as default tax rule' => 'Configurer en tant que règle par défaut', + 'Shipping configuration' => 'Configuration du transport', + 'Shipping configuration name' => 'Nom de la configuration de livraison', + 'Shipping zones' => 'Zones de livraison', + 'Shop' => 'Magasin', + 'Shop Informations' => 'Informations sur le magasin', + 'Short conclusion' => 'Courte conclusion', + 'Short description' => 'Description courte', + 'Short description :' => 'Description courte', + 'Show logs' => 'Voir les logs', + 'Some of your translations are not saved. Continue anyway ?' => 'Certaines de vos traduction ne sont pas sauvegardée. Continuer quand même ?', + 'Sorry, attribute ID=%id was not found.' => 'Veuillez nous excuser, la déclinaison ID=%id n\'a pas été trouvée', + 'Sorry, country ID=%id was not found.' => 'Veuillez nous excuser, le pays ID=%id n\'a pas été trouvé', + 'Sorry, currency ID=%id was not found.' => 'Veuillez nous excuser, la devise ID=%id n\'a pas été trouvée', + 'Sorry, customer ID=%id was not found.' => 'Veuillez nous excuser, le client ID=%id n\'a pas été trouvé', + 'Sorry, document ID=%id was not found.' => 'Veuillez nous excuser, le document ID=%id n\'a pas été trouvé', + 'Sorry, feature ID=%id was not found.' => 'Veuillez nous excuser, la caractéristique ID=%id n\'a pas été trouvée', + 'Sorry, image ID=%id was not found.' => 'Veuillez nous excuser, l\'image ID=%id n\'a pas été trouvée', + 'Sorry, message ID=%id was not found.' => 'Veuillez nous excuser, le message ID=%id n\'a pas été trouvé', + 'Sorry, template ID=%id was not found.' => 'Veuillez nous excuser, le template ID=%id n\'a pas été trouvé', + 'Sorry, variable ID=%id was not found.' => 'Désolé, la variable ID=%id n\'a pas été trouvée.', + 'Source IP' => 'IP source', + 'Source IP :' => 'IP source', + 'Status' => 'Etat', + 'Store' => 'Magasin', + 'Store Business Identification Number (SIRET, etc).' => 'Numéro d\'identification de votre magasin (SIRET, etc).', + 'Store configuration' => 'Configuration du magasin', + 'Street address' => 'Adresse', + 'Subject' => 'Sujet', + 'Superadministrator' => 'Super-administrateur', + 'Symbol' => 'Symbole', + 'System Logs' => 'Logs système', + 'System Logs configuration' => 'Configuration du système de logs', + 'System logs' => 'Journal des logs', + 'System parameters' => 'Paramètres système ', + 'System variables' => 'Gestion des variables', + 'Tax' => 'Taxes', + 'Tax created on %date_create. Last modification: %date_change' => 'Taxe créée le %date_create. Dernière modification: %date_change', + 'Tax rule created on %date_create. Last modification: %date_change' => 'Règle de taxe créée le %date_create. Dernière modification le %date_change', + 'Tax rule taxes will be update for the following countries :' => 'Les règles de taxe seront modifiées pour les pays suivants:', + 'Tax rules are combination of different taxes.' => 'Les règles de taxe sont une combinaison de différentes taxes.', + 'Taxed total' => 'Montant total des taxes', + 'Taxes' => 'Taxes', + 'Taxes define the amount of money which is added to a bought product.' => 'Les taxes définissent le montant d\'argent qui est ajouté à un produit acheté', + 'Taxes rules' => 'Règles de taxes', + 'Template name' => 'Nom du template', + 'Template title' => 'Titre du template', + 'Templates' => 'Templates', + 'Text version of this message' => 'Version texte de ce message', + 'The default pricing is used when no combination is defined.' => 'Le tarif par défaut est utilisé lorsque aucune combinaison n\'est définie.', + 'The detailed description.' => 'La description détaillée.', + 'The mailing template in HTML format.' => 'Le template de mailing au format HTML', + 'The mailing template in text-only format.' => 'Le template de mailing en format text-only.', + 'The page you\'ve requested was not found. Please check the page address, and try again.' => 'La page que vous avez demandé n\'est pas disponible.', + 'The rate from Euro (Price in Euro * rate = Price in this currency)' => 'Le taux à partir de l\'Euro (Prix en Euro * taux = Prix dans la devise)', + 'The server returned a "404 Not Found"' => 'Le serveur à retourné l\'erreur "404 non trouvé"', + 'The symbol, such as $, £, €...' => 'Le symbole, tel que $, £, €...', + 'Thelia Back Office' => 'Thelia Back Office', + 'Thelia Languages' => 'Langue Thelia', + 'Thelia Mailing System' => 'Configuration des envois de mails', + 'Thelia Mailing Templates' => 'Template de Mailing Thelia', + 'Thelia Product Attributes' => 'Déclinaisons du produit Thelia', + 'Thelia Product Features' => 'Caractéristiques produit de Thelia', + 'Thelia Product Templates' => 'Templates produit Thelia', + 'Thelia Shipping configuration' => 'Configuration des livraisons Thelia', + 'Thelia Shipping zones' => 'Zone de livraison de Thelia', + 'Thelia System Variables' => 'Variables Thelia', + 'Thelia configuration' => 'Configuration thelia', + 'Thelia contributions' => 'Contributions Thelia', + 'Thelia core' => 'Coeur Thelia', + 'Thelia informations' => 'Informations Thelia', + 'Thelia mailing templates' => 'Template de mailing Thelia', + 'Thelia product attributes' => 'Déclinaisons du produit Thelia', + 'Thelia product features' => 'caractéristiques produit de Thelia', + 'Thelia product templates' => 'templates produit Thelia', + 'Thelia support forum' => 'Communauté Thelia', + 'Thelia system variables' => 'Variables Thelia', + 'Thelia, the open source e-commerce solution' => 'Thelia, solution e-commerce libre', + 'There is no documents attached to this %type.' => 'Il n\'y a aucun document lié à ce %type.', + 'There is no images attached to this %type.' => 'Il n\'y a pas d\'image liée à ce %type.', + 'They are some administrator which are linked to this administrator. Please edit/remove them before deleting this administrator.' => 'Cet administrateur est lié avec un ou plusieurs autres administrateurs. Supprimez ou modifiez ces administrateurs d\'abord.', + 'They are some administrator which are linked to this profile. Please edit/remove them before deleting this profile.' => 'Il y a des administrateurs liés à ce profil. Veuillez les modifier/supprimer avant de supprimer ce profil.', + 'This category contains no contents' => 'Cette catégorie ne contient aucun contenu', + 'This category doesn\'t contains any products. To add a new product, click the + button above.' => 'Cette catégorie n\'a aucun produit. Pour créer un nouveau product, cliques sur le bouton + ci-dessus. ', + 'This category has no sub-categories.' => 'Cette catégorie n\'a pas de sous-catégorie.', + 'This category has no sub-categories. To create a new one, click the + button above.' => 'Cette catégorie n\'a pas de sous-catégorie. Pour en créer une nouvelle, cliquez sur le bouton + ci-dessus.', + 'This coupon is disabled, you can enable at the bottom of this form.' => 'Ce code promo est désactivé, vous pouvez l\'activer en bas du formulaire.', + 'This folder contains no contents' => 'Ce dossier ne contient aucun contenu', + 'This folder doesn\'t contains any contents. To add a new content, click the + button above.' => 'Ce dossier ne contient pas de contenu. Pour ajouter un nouveau contenu, cliquez sur le bouton + ci-dessus.', + 'This folder has no sub-folders.' => 'Ce dossier n\'a pas de sous-dossiers.', + 'This folder has no sub-folders. To create a new one, click the + button above.' => 'Ce dossier n\'a pas de sous-dossiers. Afin de créer un nouveau, cliquez sur le bouton + ci-dessus.', + 'This is the message purpose, such as \'Order confirmation\'.' => 'L\'objectif du message (ex: \'Confirmation de la commande\').', + 'This is the subject of the e-mail, such as \'Your order is confirmed\'.' => 'Le sujet de l\'e-mail (ex: \'Votre commande est confirmée\').', + 'This mailing template could not be changed.' => 'Ce template de mailing ne peut être modifié.', + 'This month' => 'Ce mois', + 'This product contains no accessories' => 'Ce produit ne contient aucun accessoire', + 'This product contains no contents' => 'Ce produit ne contient aucun contenu', + 'This product doesn\'t belong to any additional category.' => 'Ce produit n\'appartient à aucune catégorie additionnelle.', + 'This product doesn\'t belong to any additional folder.' => 'Ce produit n\'appartient à aucun dossier addoitionnel', + 'This product template does not contains any features' => 'Ce gabarit de produit ne comporte aucune caractéristique', + 'This template contains no attributes' => 'Ce template ne contient aucune déclinaison', + 'This template contains no features' => 'Ce template ne contient aucune caractéristique', + 'This the unique name of this message. Do not change this value unless you understand what you do.' => 'La valeur unique du message. Ne pas la modifier à moins que vous compreniez ce que vous faites.', 'This variable could not be changed.' => 'Cette variable ne peut pas être modifiée', + 'This year' => 'Cette année', + 'Timeout' => 'Timeout', + 'Timeout :' => 'Timeout:', + 'Title' => 'Civilité', + 'Title :' => 'Titre', + 'To' => 'A', + 'To remove a value from the combination, select it and click "remove"' => 'Afin de supprimer une valeur de la combinaison, sélectionnez la et cliquez sur "Enlever"', + 'Today' => 'Aujourd\'hui', + 'Top level' => 'Niveau 1', + 'Top level Contents' => 'Contenus de niveau 1', + 'Top level Products' => 'Produits mis en avant', + 'Top level categories' => 'Catégories de niveau 1', + 'Top level folders' => 'Dossiers de niveau 1', + 'Total' => 'Total', + 'Total including discount' => 'Total avec remise', + 'Total without discount' => 'Montant total hors remises', + 'Transaction reference' => 'Référence de la transaction', + 'Translation' => 'Traduction', + 'Translations' => 'Traductions', + 'Type :' => 'Type', + 'Unit taxed price' => 'Prix unitaire TTC', + 'Unit. price' => 'Prix unitaire', + 'Unlimited' => 'Illimité', + 'Update' => 'Mettre à jour', + 'Update a new administrator' => 'Modifier cet administrateur', + 'Update coupon' => 'Mettre à jour le code', + 'Update rates' => 'Mettre à jour les taux', + 'Update tax rule taxes' => 'Mettre à jour les taxes de la règle de taxe', + 'Update this image' => 'Modifier cette image', + 'Usage left' => 'Utilisation restante', + 'Use Ctrl+click to select more than one value. You can also clear selected values.' => 'Utilisez Ctrl+clic pour choisir plus d\'une valeur. Vous pouvez aussi tout désélectionner.', + 'Use HTML message defined below' => 'Utiliser le message HTML défini ci-dessous', + 'Use Text message defined below' => 'Utiliser le message Text défini ci-dessous', + 'Use address by default' => 'Utiliser comme adresse par défaut', + 'Use default layout' => 'Utiliser le layout par défaut', + 'Use this address by default' => 'Utiliser comme adresse par défaut', + 'Used in your store front' => 'Utilisé dans votre vitrine', + 'Username' => 'Nom d\'utilisateur', + 'Username :' => 'Nom d\'utilisateur', + 'Using a domain or subdomain for each language' => 'En utilisant un domaine ou un sous domaine pour chaque langue', + 'Value' => 'Valeur', + 'Variable created on %date_create. Last modification: %date_change' => 'Variable créée le %date_create. Dernière modification: %date_change', + 'Variable name' => 'Nom de la variable', 'Variable purpose' => 'Objet de la variable', - 'Create a new variable' => 'Créer une nouvelle variable', - 'Create this variable' => 'Ajouter cette variable', - 'Delete a variable' => 'Supprimer une variable', - 'Do you really want to delete this variable ?' => 'Voulez-vous vraiment supprimer cette variable ?', + 'Variable value' => 'Valeur de la variable', + 'Version %ver' => 'Version %ver', + 'View' => 'Voir', + 'View only missing translations' => 'Voir uniquement les traductions manquantes', + 'View shop' => 'Voir la boutique', + 'View site' => 'Voir le site', + 'Visibility' => 'Visibilité', + 'Warning' => 'Attention', + 'Weight
(Kg)' => 'Poids
(Kg)', + 'Welcome' => 'Bienvenue', + 'Will be available on special offers' => 'Sera disponible pour les produits en promotion', + 'Will remove postage' => 'Supprimera les frais de port', + 'Won\'t be available on special offers' => 'Ne sera pas disponible pour les produits en promotion', + 'Won\'t remove postage' => 'Ne supprimera pas les frais de port', + 'Yes' => 'Oui', + 'Yesterday sales' => 'Ventes de la veille', + 'You can attach here some content to this category' => 'Vous pouvez lier ici des contenus à cette catégorie', + 'You can attach here some content to this product' => 'Attachez ici un ou plusieurs contenus à ce produit', + 'You can attach this product to more categories in the details tab.' => 'Vous pouvez lier ce produit à plusieurs catégories dans l\'onglet détail.', + 'You can change the default category (%title) in the "General" tab.' => 'Vous pouvez modifier la catégorie par défaut (%title) dans l\'onglet "Général".', + 'You can change the default folder (%title) in the "General" tab.' => 'Vous pouvez modifier le dossier par défaut (%title) dans l\'onglet "Général".', + 'You can\'t delete this administrator' => 'Vous ne pouvez pas supprimer cet administrateur', + 'You can\'t delete this profile' => 'Vous ne pouvez pas supprimer ce profil', + 'Your current IP address is %ip' => 'Votre adresse IP courante est %ip', + 'Zip code' => 'Code postal', + 'Zones' => 'Zones', + 'activate' => 'activer', + 'activate %title module' => 'activer le module %title', + 'activation' => 'activation', + 'and' => 'et', + 'classic modules' => 'Modules classiques', + 'code' => 'code', + 'company' => 'entreprise', + 'customer ref' => 'ref client', + 'd-m-Y' => 'j-m-A', + 'date form' => 'formulaire de date', + 'date in yyyy-mm-dd format' => 'date au format yyyy-mm-dd', + 'days left' => 'jours restants', + 'deactivate' => 'désactiver', + 'deactivation' => 'désactivation', + 'en_US' => 'en_US', + 'firstname & lastname' => 'Prénom & nom', + 'hour in hh:mm:ss format' => 'date au format hh:mm:ss', + 'last order' => 'Dernière commande', + 'long description' => 'description longue', + 'max usage' => 'utilisations max', + 'order amount' => 'Montant de la commande', + 'orders for this customer' => 'commandes pour ce client', + 'short description' => 'description court', + 'tax rules' => 'règles de taxe', + 'taxes' => 'taxes', + 'time form' => 'formulaire de temps', + 'title' => 'titre', + 'tracking reference' => 'Reference Tracking', + 'uncheck all' => 'tout décocher', + 'you can combine taxes in tax rules and chose if they are applied one after the other or at the same time : it allows to apply taxes on an already taxed price or not.' => 'vous pouvez combiner des taxes en règles de taxe et choisir si elle sont appliquées l\'une après l\'autre ou en même temps: cela permet d\'appliquer des taxes sur un produit déjà taxé ou non.', + 'yyyy-mm-dd' => 'jjjj--mm--aa', ); diff --git a/templates/backOffice/default/assets/less/thelia/thelia.less b/templates/backOffice/default/assets/less/thelia/thelia.less index 41b37d4ca..8660af2ad 100755 --- a/templates/backOffice/default/assets/less/thelia/thelia.less +++ b/templates/backOffice/default/assets/less/thelia/thelia.less @@ -161,16 +161,6 @@ width: 100%; } -.btn-group { - white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page) - > .btn { - float: inherit; - } - > .btn + .btn { - margin-left: -4px; - } -} - // -- Login form -------------------------------------------------------------- .form-signin { @@ -423,4 +413,19 @@ .dropzone { border: 1px dashed #ddd; padding: 20px; +} + +// No button wrap in button groups in td.action cells +table { + td.actions { + .btn-group { + white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page) + > .btn { + float: inherit; + } + > .btn + .btn { + margin-left: -4px; + } + } + } } \ No newline at end of file diff --git a/templates/backOffice/default/content-edit.html b/templates/backOffice/default/content-edit.html index ae92061b9..30ad43964 100755 --- a/templates/backOffice/default/content-edit.html +++ b/templates/backOffice/default/content-edit.html @@ -155,6 +155,7 @@
+ {module_include location='content-edit'}
diff --git a/templates/backOffice/default/coupon-read.html b/templates/backOffice/default/coupon-read.html index 75fd7f550..8bc91f67e 100755 --- a/templates/backOffice/default/coupon-read.html +++ b/templates/backOffice/default/coupon-read.html @@ -27,7 +27,7 @@ {if !$IS_ENABLED}
- {intl l='This coupon is disabled, you can enable to the bottom of this form.'} + {intl l='This coupon is disabled, you can enable at the bottom of this form.'}
{/if} diff --git a/templates/backOffice/default/folder-edit.html b/templates/backOffice/default/folder-edit.html index 82f57af68..89c5d9865 100755 --- a/templates/backOffice/default/folder-edit.html +++ b/templates/backOffice/default/folder-edit.html @@ -131,7 +131,7 @@
 
-

{intl l='Colder created on %date_create. Last modification: %date_change' date_create="{format_date date=$CREATE_DATE}" date_change="{format_date date=$UPDATE_DATE}"}

+

{intl l='Folder created on %date_create. Last modification: %date_change' date_create="{format_date date=$CREATE_DATE}" date_change="{format_date date=$UPDATE_DATE}"}

@@ -255,6 +255,7 @@
+ {module_include location='folder-edit'}
diff --git a/templates/backOffice/default/image-edit.html b/templates/backOffice/default/image-edit.html index 4889178b3..362d10adb 100755 --- a/templates/backOffice/default/image-edit.html +++ b/templates/backOffice/default/image-edit.html @@ -46,7 +46,7 @@ {if $form_error}
{$form_error_message}
{/if} -

{intl l="Image informations"}

+

{intl l="Image information"}

diff --git a/templates/backOffice/default/includes/content-folder-management.html b/templates/backOffice/default/includes/content-folder-management.html index cbace2455..6f1b3566b 100755 --- a/templates/backOffice/default/includes/content-folder-management.html +++ b/templates/backOffice/default/includes/content-folder-management.html @@ -7,7 +7,7 @@