diff --git a/core/lib/Thelia/Controller/Admin/HomeController.php b/core/lib/Thelia/Controller/Admin/HomeController.php
index e8711f97d..0fcee29ca 100644
--- a/core/lib/Thelia/Controller/Admin/HomeController.php
+++ b/core/lib/Thelia/Controller/Admin/HomeController.php
@@ -41,6 +41,8 @@ class HomeController extends BaseAdminController
public function loadStatsAjaxAction()
{
+ if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) return $response;
+
$data = new \stdClass();
$data->title = "Stats on " . $this->getRequest()->query->get('month', date('m')) . "/" . $this->getRequest()->query->get('year', date('Y'));
diff --git a/core/lib/Thelia/Controller/Admin/ProductController.php b/core/lib/Thelia/Controller/Admin/ProductController.php
index d415317c0..eca9849e3 100644
--- a/core/lib/Thelia/Controller/Admin/ProductController.php
+++ b/core/lib/Thelia/Controller/Admin/ProductController.php
@@ -1201,10 +1201,10 @@ class ProductController extends AbstractCrudController
}
return new JsonResponse(array(
- 'price_with_tax' => NumberFormat::getInstance($this->getRequest())->format($price_with_tax, null, '.'),
- 'price_without_tax' => NumberFormat::getInstance($this->getRequest())->format($price_without_tax, null, '.'),
- 'sale_price_with_tax' => NumberFormat::getInstance($this->getRequest())->format($sale_price_with_tax, null, '.'),
- 'sale_price_without_tax' => NumberFormat::getInstance($this->getRequest())->format($sale_price_without_tax, null, '.')
+ 'price_with_tax' => NumberFormat::getInstance($this->getRequest())->formatStandardNumber($price_with_tax),
+ 'price_without_tax' => NumberFormat::getInstance($this->getRequest())->formatStandardNumber($price_without_tax),
+ 'sale_price_with_tax' => NumberFormat::getInstance($this->getRequest())->formatStandardNumber($sale_price_with_tax),
+ 'sale_price_without_tax' => NumberFormat::getInstance($this->getRequest())->formatStandardNumber($sale_price_without_tax)
));
}
@@ -1236,7 +1236,8 @@ class ProductController extends AbstractCrudController
if ($convert != 0) {
$return_price = $prix * Currency::getDefaultCurrency()->getRate();
}
+
// Format the number using '.', to perform further calculation
- return NumberFormat::getInstance($this->getRequest())->format($return_price, null, '.');
+ return NumberFormat::getInstance($this->getRequest())->formatStandardNumber($return_price);
}
}
diff --git a/core/lib/Thelia/Controller/Admin/TranslationsController.php b/core/lib/Thelia/Controller/Admin/TranslationsController.php
index 7bea68e6f..cb7c3f072 100644
--- a/core/lib/Thelia/Controller/Admin/TranslationsController.php
+++ b/core/lib/Thelia/Controller/Admin/TranslationsController.php
@@ -94,6 +94,10 @@ class TranslationsController extends BaseAdminController
case 'pf' :
$template = new TemplateDefinition($item_id, TemplateDefinition::PDF);
break;
+
+ case 'ma' :
+ $template = new TemplateDefinition($item_id, TemplateDefinition::EMAIL);
+ break;
}
if ($template) {
diff --git a/core/lib/Thelia/Core/Event/TheliaEvents.php b/core/lib/Thelia/Core/Event/TheliaEvents.php
index 4b929409c..9ffd5c795 100755
--- a/core/lib/Thelia/Core/Event/TheliaEvents.php
+++ b/core/lib/Thelia/Core/Event/TheliaEvents.php
@@ -38,20 +38,6 @@ final class TheliaEvents
*/
const BOOT = "thelia.boot";
- /**
- * ACTION event
- *
- * Sent if no action are already present in Thelia action process ( see Thelia\Routing\Matcher\ActionMatcher)
- */
- const ACTION = "thelia.action";
-
- /**
- * INCLUDE event
- *
- * Sent before starting thelia inclusion
- */
- const INCLUSION = "thelia.include";
-
/**
* Sent before the logout of the customer.
*/
diff --git a/core/lib/Thelia/Core/Template/Loop/Attribute.php b/core/lib/Thelia/Core/Template/Loop/Attribute.php
index 2225ced66..66964c8b8 100755
--- a/core/lib/Thelia/Core/Template/Loop/Attribute.php
+++ b/core/lib/Thelia/Core/Template/Loop/Attribute.php
@@ -181,10 +181,8 @@ class Attribute extends BaseI18nLoop implements PropelSearchLoopInterface
break;
}
}
-echo "s=".$search->toString();
return $search;
-
}
public function parseResults(LoopResult $loopResult)
diff --git a/core/lib/Thelia/Core/Template/Loop/Template.php b/core/lib/Thelia/Core/Template/Loop/Template.php
index c5b6a95f3..fc9505449 100644
--- a/core/lib/Thelia/Core/Template/Loop/Template.php
+++ b/core/lib/Thelia/Core/Template/Loop/Template.php
@@ -64,7 +64,8 @@ class Template extends BaseLoop implements ArraySearchLoopInterface
new Type\EnumListType(array(
'front-office',
'back-office',
- 'pdf'
+ 'pdf',
+ 'email'
))
)
)
@@ -80,6 +81,8 @@ class Template extends BaseLoop implements ArraySearchLoopInterface
$templateType = TemplateDefinition::BACK_OFFICE;
else if ($type == 'pdf')
$templateType = TemplateDefinition::PDF;
+ else if ($type == 'email')
+ $templateType = TemplateDefinition::EMAIL;
return TemplateHelper::getInstance()->getList($templateType);
}
diff --git a/core/lib/Thelia/Core/Template/TemplateHelper.php b/core/lib/Thelia/Core/Template/TemplateHelper.php
index 9b93aae96..acaf1117e 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));
}
-
- $idx++;
}
fwrite($fp, ");\n");
diff --git a/core/lib/Thelia/Model/Category.php b/core/lib/Thelia/Model/Category.php
index 067c54fc1..8b8b53e4f 100755
--- a/core/lib/Thelia/Model/Category.php
+++ b/core/lib/Thelia/Model/Category.php
@@ -115,6 +115,8 @@ class Category extends BaseCategory
*/
public function postDelete(ConnectionInterface $con = null)
{
+ $this->markRewritenUrlObsolete();
+
$this->dispatchEvent(TheliaEvents::AFTER_DELETECATEGORY, new CategoryEvent($this));
}
}
\ No newline at end of file
diff --git a/core/lib/Thelia/Model/Content.php b/core/lib/Thelia/Model/Content.php
index 6417c8b56..3a002e6d1 100755
--- a/core/lib/Thelia/Model/Content.php
+++ b/core/lib/Thelia/Model/Content.php
@@ -148,6 +148,8 @@ class Content extends BaseContent
public function postDelete(ConnectionInterface $con = null)
{
+ $this->markRewritenUrlObsolete();
+
$this->dispatchEvent(TheliaEvents::AFTER_DELETECONTENT, new ContentEvent($this));
}
}
diff --git a/core/lib/Thelia/Model/Folder.php b/core/lib/Thelia/Model/Folder.php
index 4b32e7591..9249c94e2 100755
--- a/core/lib/Thelia/Model/Folder.php
+++ b/core/lib/Thelia/Model/Folder.php
@@ -100,6 +100,8 @@ class Folder extends BaseFolder
public function postDelete(ConnectionInterface $con = null)
{
+ $this->markRewritenUrlObsolete();
+
$this->dispatchEvent(TheliaEvents::AFTER_DELETEFOLDER, new FolderEvent($this));
}
}
diff --git a/core/lib/Thelia/Model/Product.php b/core/lib/Thelia/Model/Product.php
index 3855c46c1..12b98c890 100755
--- a/core/lib/Thelia/Model/Product.php
+++ b/core/lib/Thelia/Model/Product.php
@@ -263,12 +263,8 @@ class Product extends BaseProduct
*/
public function postDelete(ConnectionInterface $con = null)
{
- RewritingUrlQuery::create()
- ->filterByView($this->getRewrittenUrlViewName())
- ->filterByViewId($this->getId())
- ->update(array(
- "View" => ConfigQuery::getObsoleteRewrittenUrlView()
- ));
+ $this->markRewritenUrlObsolete();
+
$this->dispatchEvent(TheliaEvents::AFTER_DELETEPRODUCT, new ProductEvent($this));
}
}
diff --git a/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php b/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php
index d16ceaf5f..bcbbb9afd 100644
--- a/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php
+++ b/core/lib/Thelia/Model/Tools/UrlRewritingTrait.php
@@ -29,6 +29,7 @@ use Thelia\Exception\UrlRewritingException;
use Thelia\Model\RewritingUrlQuery;
use Thelia\Model\RewritingUrl;
use Thelia\Tools\URL;
+use Thelia\Model\ConfigQuery;
/**
* A trait for managing Rewritten URLs from model classes
*/
@@ -136,6 +137,18 @@ trait UrlRewritingTrait {
return $url;
}
+ /**
+ * Mark the current URL as obseolete
+ */
+ public function markRewritenUrlObsolete() {
+ RewritingUrlQuery::create()
+ ->filterByView($this->getRewrittenUrlViewName())
+ ->filterByViewId($this->getId())
+ ->update(array(
+ "View" => ConfigQuery::getObsoleteRewrittenUrlView()
+ ));
+ }
+
/**
* Set the rewritten URL for the given locale
*
diff --git a/core/lib/Thelia/Tests/Action/FolderTest.php b/core/lib/Thelia/Tests/Action/FolderTest.php
index 7ef88aa0d..c433411ee 100644
--- a/core/lib/Thelia/Tests/Action/FolderTest.php
+++ b/core/lib/Thelia/Tests/Action/FolderTest.php
@@ -162,14 +162,19 @@ class FolderTest extends BaseAction
public function testUpdatePositionDown()
{
- $folder = FolderQuery::create()
- ->filterByPosition(1)
+ $nextFolder = FolderQuery::create()
+ ->filterByPosition(2)
->findOne();
- if (null === $folder) {
+ if (null === $nextFolder) {
$this->fail('use fixtures before launching test, there is no folder in database');
}
+ $folder = FolderQuery::create()
+ ->filterByPosition(1)
+ ->filterByParent($nextFolder->getParent())
+ ->findOne();
+
$newPosition = $folder->getPosition()+1;
$event = new UpdatePositionEvent($folder->getId(), UpdatePositionEvent::POSITION_DOWN);
diff --git a/core/lib/Thelia/Tools/NumberFormat.php b/core/lib/Thelia/Tools/NumberFormat.php
index ae25404d7..f3e69129b 100644
--- a/core/lib/Thelia/Tools/NumberFormat.php
+++ b/core/lib/Thelia/Tools/NumberFormat.php
@@ -39,6 +39,22 @@ class NumberFormat
return new NumberFormat($request);
}
+ /**
+ * Get a standard number, with '.' as decimal point and no thousands separator
+ * so that this number can be used to perform calculations.
+ *
+ * @param float $number the number
+ * @param string $decimals number of decimal figures
+ */
+ public function formatStandardNumber($number, $decimals = null) {
+
+ $lang = $this->request->getSession()->getLang();
+
+ if ($decimals == null) $decimals = $lang->getDecimals();
+
+ return number_format($number, $decimals, '.', '');
+ }
+
public function format($number, $decimals = null, $decPoint = null, $thousandsSep = null)
{
$lang = $this->request->getSession()->getLang();
diff --git a/templates/backOffice/default/I18n/fr_FR.php b/templates/backOffice/default/I18n/fr_FR.php
index a51ffc218..c40d35dd9 100755
--- a/templates/backOffice/default/I18n/fr_FR.php
+++ b/templates/backOffice/default/I18n/fr_FR.php
@@ -36,8 +36,8 @@ return array(
'Home' => 'Accueil',
'Configuration' => 'Configuration',
'Mailing system' => 'Envoi des e-mails',
- 'Configuration mailing system' => 'Configuration du système d\'envoie de mail',
- 'Enable remote SMTP use : ' => 'Activer l\'utilisation d\'un serveur SMTP distant',
+ 'Configuration mailing system' => 'Configuration du système de mailing',
+ 'Enable remote SMTP use : ' => 'Activer l\'utilisation d\'un serveur SMTP distant:',
'Host :' => 'Host',
'Host' => 'Host',
'Port :' => 'Port',
@@ -55,16 +55,18 @@ return array(
'Source IP' => 'IP source',
'Edit a currency' => 'Modifier une devise',
'Currencies' => 'Monnaie',
- 'Editing currency "%name"' => 'En cours d\'édition de la devise "%name"',
- 'Edit currency "%name"' => 'Modifier la devise "%name"',
+ 'Editing currency "%name"' => 'En cours de modification de la devise "%name"',
+ 'Edit currency "%name"' => 'Modification de la devise "%name"',
'Currency name' => 'Nom de la devise',
- 'Currency ISO 4217 Code' => 'Devise code ISO 4217',
+ 'Currency ISO 4217 Code' => 'Code ISO 4217 de la devise',
'Code' => 'Code',
'More information about ISO 4217' => 'Plus d\'information à propos de l\'ISO 4217',
- 'Currency symbol' => 'Symbole de la devise',
+ 'Currency symbol' => 'Symbole de la monaie',
'Symbol' => 'Symbole',
- 'The symbol, such as $, £, €...' => 'Le symbole (ex: $, £, €...)',
+ 'The symbol, such as $, £, €...' => 'Le symbole, tel que $, £, €...',
+ 'Rate from Euro' => 'Taux à partir de l\'Euro',
'Rate' => 'Taux',
+ 'Sorry, currency ID=%id was not found.' => 'Veuillez nous excuser, la devise ID=%id n\'a pas été trouvée',
'Thelia System Variables' => 'Variables Thelia',
'System variables' => 'Gestion des variables',
'Thelia system variables' => 'Variables Thelia',
@@ -88,7 +90,7 @@ return array(
'Delete a variable' => 'Supprimer une variable',
'Do you really want to delete this variable ?' => 'Voulez-vous vraiment supprimer cette variable ?',
'Countries' => 'Pays',
- 'Add a new country' => 'Ajouter un pays',
+ 'Add a new country' => 'Ajouter un nouveau pays',
'Default' => 'Défaut',
'Shop' => 'Magasin',
'N° ISO' => 'N° ISO',
@@ -96,7 +98,7 @@ return array(
'Actions' => 'Actions',
'Change this country' => 'Modifier ce pays',
'Delete this country' => 'Supprimer ce pays',
- '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 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',
'Country title' => 'Titre du pays',
'Alpha code 2' => 'Code alpha 2',
'Alpha code 3' => 'Code alpha 3',
@@ -106,6 +108,7 @@ return array(
'Delete country' => 'Supprimer le pays',
'Do you really want to delete this country ?' => 'Voulez-vous vraiment supprimer ce pays ?',
'Error' => 'Erreur',
+ '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',
'And' => 'Et',
'Edit' => 'Editer',
'Delete' => 'Supprimer',
@@ -131,31 +134,44 @@ return array(
'Long description :' => 'Description longue',
'long description' => 'description longue',
'Save your modifications' => 'Enregistrer les modifications',
- 'Please save your Coupon in oder to affect it some conditions' => 'Veuillez sauvegarder votre code promo afin de lui affecter des conditions',
+ 'Please save your Coupon in oder to affect it some conditions' => 'Veuillez sauvegarder votre code promo afin de pouvoir lui affecter des conditions',
'Conditions' => 'Conditions',
'Save this condition' => 'Enregistrer cette condition',
- 'Condition type :' => 'Type de condition:',
+ 'Condition type :' => 'Type de la condition:',
'Or' => 'Ou',
'Condition\'s category :' => 'Type de condition',
'Please select a condition category' => 'Merci d\'entrer le type de condition',
'Operator :' => 'Opérateur:',
+ 'Edit a mailing template' => 'Modifier un template de mailing',
'Mailing templates' => 'Template e-mail',
+ 'Editing mailing template "%name"' => 'En cours de modification du template de mailing "%name"',
+ 'Edit mailing template "%name"' => 'Modifier le template de mailing "%name"',
'Title' => 'Civilité',
'Subject' => 'Sujet',
+ 'HTML version of this message' => 'Version HTML de ce message',
+ 'Use default layout' => 'Utiliser le layout par défaut',
+ 'Text version of this message' => 'Version texte de ce message',
+ 'Use Text message defined below' => 'Utiliser le message Text défini ci-dessous',
+ 'The mailing template in text-only format.' => 'Le template de mailing en format text-only.',
+ 'Sorry, message ID=%id was not found.' => 'Veuillez nous excuser, le message ID=%id n\'a pas été trouvé',
'Edit a tax rule' => 'Modifier une règle de taxe',
'Taxes rules' => 'Règles de taxes',
- 'Editing tax rule' => 'En cours de modification d\'une règle de taxe',
+ 'Editing tax rule' => 'En cours de modification de la règle de taxe',
'Description' => 'Description',
'Taxes' => 'Taxes',
- 'The detailed description.' => 'Description détaillée',
+ 'The detailed description.' => 'La description détaillée.',
'Manage taxes' => 'Gérer les taxes',
'Choose a country' => 'Choisissez un pays',
- 'Countries that have the same tax rule' => 'Pays ayant les mêmes règles de taxe',
+ 'Countries that have the same tax rule' => 'Pays qui ont les même règles de taxe',
'NONE' => 'AUCUN',
+ 'Manage the tax rule taxes appliance order' => 'Gérer les règles de taxe et leur ordre d\'application',
'Add tax to this group' => 'Ajouter une taxe à ce groupe',
+ 'Drop tax here to create a tax group' => 'Déposer une taxe ici afin de créer un groupe de taxe',
'Apply' => 'Appliquer',
- 'uncheck all' => 'Tous décocher',
- 'Edit tax rule taxes' => 'Modifier une règle de taxe',
+ 'Drop tax here to delete from group' => 'Déposer une taxe ici afin de la supprimer du groupe',
+ 'uncheck all' => 'tout décocher',
+ 'Update tax rule taxes' => 'Mettre à jour les taxes de la règle de taxe',
+ 'Edit tax rule taxes' => 'Modifier les taxes de la règle de taxe',
'Coupons' => 'Codes Promo',
'Coupon' => 'Code promo',
'Browse' => 'Parcourir',
@@ -172,16 +188,17 @@ return array(
'Edit content %title' => 'Modifier le contenu %title',
'Edit previous content' => 'Modifier le contenu précèdent',
'Preview folder page' => 'Aperçu de la page dossier',
- 'Edit next content' => 'Modifier le prochain contenu',
+ 'Edit next content' => 'Modifier le contenu suivant',
'General description' => 'Description générale',
'Associations' => 'Associations',
'Images' => 'Images',
'Documents' => 'Documents',
'Modules' => 'Modules',
- 'Rewritten URL' => 'URL réécrite',
+ 'Rewritten URL' => 'URL réécrites',
'Top level' => 'Niveau racine',
'Visibility' => 'Visibilité',
- 'Remove associated folder' => 'Supprimer le dossier associé',
+ 'Remove associated folder' => 'Enlever le dossier associé',
+ 'Do you really want to remove the content from this folder ?' => 'Voulez-vous vraiment enlever le contenu de ce dossier ?',
'Thelia Back Office' => 'Thelia Back Office',
'Version %ver' => 'Version %ver',
'View site' => 'Voir le site',
@@ -205,8 +222,8 @@ return array(
'Last name' => 'Nom',
'First name' => 'Prénom',
'Registration date' => 'Date d\'inscription',
- 'Date of last order' => 'Date du dernier achat',
- 'Last order amount' => 'Montant du dernier achat',
+ 'Date of last order' => 'Date de la dernière commande',
+ 'Last order amount' => 'Montant de la dernière commande',
'Edit this customer' => 'Modifier ce client',
'Send a mail to this customer' => 'Contacter ce client par mail',
'Delete this customer and all his orders' => 'Supprimer ce client et toutes ses commandes',
@@ -224,27 +241,41 @@ return array(
'Do you really want to delete this customer ?' => 'Voulez-vous supprimer ce client ? ',
'Edit a profile' => 'Modifier un profile',
'Profiles' => 'Profiles',
- 'Editing profile' => 'En cours d\'édition du profile',
+ 'Editing profile' => 'En cours du profile',
+ 'Resource access rights' => 'Droits d\'accès aux ressources',
+ 'Module access rights' => 'Droits d\'accès aux modules',
'Postscriptum' => 'Post-scriptum',
+ 'Manage resource rights' => 'Gérer les droits d\'accès aux ressources',
'Save' => ' Enregistrer',
- 'Resource' => 'Ressource',
+ 'Resource' => 'Ressources',
'Rights' => 'Droits',
'View' => 'Voir',
'Create' => 'Créer',
'Update' => 'Mettre à jour',
- 'Manage module rights' => 'Gérer les droits des modules',
+ 'Manage module rights' => 'Gestion des accès aux modules',
'Module' => 'Module',
+ 'Edit a shipping configuration' => 'Modifier une configuration de livraison',
'Shipping configuration' => 'Configuration du transport',
+ 'Editing shipping configuration "%name"' => 'En cours de modification de la configuration de livraison "%name"',
+ 'Edit shipping configuration %title' => 'Modifier la configuration de livraison %title',
'Country' => 'Pays',
'Add this country' => 'Ajouter ce pays',
- 'Remove country' => 'Supprimer le pays',
- 'Do you really want to remove this country ?' => 'Voulez-vous vraiment supprimer ce pays ?',
+ 'No area defined with this id' => 'Pas de zone définie avec cette id',
+ 'Remove country' => 'Enlever ce pays',
+ 'Do you really want to remove this country ?' => 'Voulez-vous vraiment enlever ce pays ?',
'Edit product' => 'Modifier le produit',
+ 'Edit product %title' => 'Modifier le produit %title',
'Edit previous product' => 'Modifier le produit précèdent',
+ 'Preview product page' => 'Aperçu de la page produit',
'Edit next product' => 'Modifier le produit suivant',
'General' => 'Général',
'Details' => 'Détails',
- 'Files manager' => 'Gestionnaire de fichier',
+ 'Attributes & Features' => 'Déclinaisons & caractéristiques',
+ 'Please wait, loading' => 'Veuillez patienter, chargement',
+ 'Files manager' => 'Gestionnaire de fichiers',
+ '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.',
+ 'Existing combinations will be deleted. Do you want to continue ?' => 'Les combinaisons existantes seront supprimées. Voulez-vous continuer ?',
'Thelia configuration' => 'Configuration thelia',
'Product catalog configuration' => 'Configuration du catalogue produit',
'Product templates' => 'Template produit',
@@ -259,48 +290,122 @@ return array(
'Translations' => 'Traductions',
'Administration logs' => 'Gestion des logs',
'System logs' => 'Journal des logs',
- 'Add a new folder' => 'Ajouter une nouveau dossier',
+ 'Folders in %fold' => 'Dossier dans %fold',
+ 'Top level folders' => 'Dossiers à la racine',
+ 'Add a new folder' => 'Ajouter un nouveau dossier',
'ID' => 'ID',
'Folder title' => 'Titre du dossier',
'Online' => 'En ligne',
'Position' => 'Position',
+ 'Browse this folder' => 'Parcourir ce dossier',
'Edit this folder' => 'Modifier ce dossier',
+ 'Delete this folder and all its contents' => 'Supprimer ce dossier et tous ces contenus',
+ '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 folder has no sub-folders.' => 'Ce dossier n\'a pas de sous-dossiers.',
+ 'Contents in %fold' => 'Contenus dans %fold',
+ 'Top level Contents' => 'Contenus racine',
'Add a new content' => 'Ajouter un nouveau contenu',
'Content title' => 'Titre du contenu',
'Edit this content' => 'Modifier ce contenu',
'Delete this content' => 'Supprimer ce contenu',
- 'Create a new folder' => 'Ajouter un nouveau dossier',
+ '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.',
+ 'Create a new folder' => 'Créer un nouveau dossier',
'Create this folder' => 'Créer ce dossier',
- 'Delete folder' => 'Supprimer le dossier',
+ 'Enter here the content name in the default language (%title)' => 'Entrez ici le nom du contenu dans le language par défaut (%title)',
+ 'Create a new content' => 'Créer un nouveau contenu',
+ 'Create this content' => 'Créer ce contenu',
+ 'Delete folder' => 'Supprimer ce contenu',
+ 'Do you really want to delete this folder and all its content ?' => 'Voulez-vous vraiment supprimer ce dossier et tous ses contenus ?',
'Delete content' => 'Supprimer le contenu',
- 'Thelia Shipping zones' => 'Zones de livraison Thelia',
- 'Change this shipping zone' => 'Changer cette zone de livraison',
+ 'Do you really want to delete this content ?' => 'Voulez-vous vraiment supprimer ce contenu ?',
+ 'Enter new folder position' => 'Modifier la position du dossier',
+ 'Enter new content position' => 'Modifier la position du contenu',
+ 'Thelia Shipping zones' => 'Zone de livraison de Thelia',
+ 'Change this shipping zone' => 'Modifier cette zone de livraison',
+ 'Edit a feature' => 'Modifier une caractéristique',
+ 'Features' => 'Caractéristiques',
+ 'Editing feature "%name"' => 'En cours de modification de la caractéristique "%name"',
+ 'Edit feature "%name"' => 'Modifier la caractéristique "%name"',
+ 'Feature information' => 'Informations sur la caractéristique',
+ 'Feature values' => 'Valeurs de la caractéristique',
'Delete this value' => 'Supprimer cette valeur',
+ '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.',
+ 'Sorry, feature ID=%id was not found.' => 'Veuillez nous excuser, la caractéristique ID=%id n\'a pas été trouvée',
+ 'Feature title' => 'Titre de la caractéristique',
+ 'Create a new feature value' => 'Créer une nouvelle valeur de caractéristique',
'Create this value' => 'Créer cette valeur',
- 'Remove from all product templates' => 'Supprimer de tous les templates produits',
+ 'Delete feature value' => 'Supprimer la valeur de la caractéristique',
+ 'Do you really want to delete this feature value ?' => 'Voulez-vous vraiment supprimer cette valeur de caractéristique ?',
+ 'Enter new value position' => 'Entrez une nouvelle position',
+ 'Thelia Mailing Templates' => 'Template de Mailing Thelia',
+ 'Thelia mailing templates' => 'Template de mailing Thelia',
+ 'Add a new mailing template' => 'Ajouter un nouveau template de mailing',
+ 'Change this mailing template' => 'Modifier ce template de mailing',
+ 'Delete this mailing template' => 'Supprimer ce template de mailing',
+ 'This mailing template could not be changed.' => 'Ce template de mailing ne peut être modifié.',
+ 'Mailing template name' => 'Nom du template de mailing',
+ 'Mailing template purpose' => 'Objectif du template de mailing',
+ '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)',
+ 'Create a new mailing template' => 'Créer un nouveau template de mailing',
+ 'Create this mailing template' => 'Créer ce template de mailing',
+ 'Delete mailing template' => 'Supprimer ce template de mailing',
+ 'Do you really want to delete this mailing template ?' => 'Voulez-vous vraiment supprimer ce template de mailing ?',
+ 'Thelia Product Features' => 'Caractéristiques produit de Thelia',
+ 'Thelia product features' => 'caractéristiques produit de Thelia',
+ 'Add a new product feature' => 'Ajouter une nouvelle caractéristique produit',
+ 'Change this feature' => 'Modifier cette caractéristique',
+ 'Remove this feature from all product templates' => 'Enlever cette caractéristique de tous les templates produit',
+ 'Add this feature to all product templates' => 'Ajouter cette caractéristique à tous les templates produit',
+ 'Change this product feature' => 'Modifier cette caractéristique produit',
+ 'Delete this product feature' => 'Supprimer cette caractéristique produit',
+ 'Create a new feature' => 'Créer une nouvelle caractéristique',
+ 'Create this feature' => 'Créer cette caractéristique',
+ 'Delete feature' => 'Supprimer cette caractéristique',
+ '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',
+ 'Add to all product templates' => 'Ajouter à 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 ?',
+ 'Remove from all product templates' => 'Enlever de tous les templates produit',
+ '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. ',
+ 'Enter new feature position' => 'Modifier la position de la caractéristique',
'Install a new module' => 'Installer un nouveau module',
- 'Classic modules' => 'Module classique',
- 'Delivery modules' => 'Module de livraison',
- 'Payment modules' => 'Module de paiement',
+ 'Classic modules' => 'Modules classic',
+ 'Delivery modules' => 'Modules de livraison',
+ 'Payment modules' => 'Modules de payment',
'Delete a module' => 'Supprimer un module',
'Do you really want to delete this module ?' => 'Voulez-vous vraiment supprimer ce module ?',
- 'An error occured' => 'Une erreur est apparue',
- 'Edit an attribute' => 'Modifier un attribut',
- 'Attributes' => 'Attributs',
- 'Attribute values' => 'Valeur des attributs',
- 'Attribute title' => 'Titre de l\'attribut',
+ 'An error occured' => 'Une erreur est survenue',
+ 'Edit an attribute' => 'Modifier une déclinaison',
+ 'Attributes' => 'Déclinaisons',
+ 'Editing attribute "%name"' => 'En cours de modification de la déclinaison "%name"',
+ 'Edit attribute "%name"' => 'Modifier la déclinaison "%name"',
+ 'Attribute information' => 'Information sur la déclinaison',
+ 'Attribute values' => 'Valeurs de la déclinaison',
+ 'Enter here all possible attribute values.' => 'Entrez ici toutes les valeurs de déclinaison possible.',
+ 'Sorry, attribute ID=%id was not found.' => 'Veuillez nous excuser, la déclinaison ID=%id n\'a pas été trouvée',
+ 'Attribute title' => 'Titre de la déclinaison',
+ 'Enter here the value in the current edit language (%title)' => 'Entrez ici la valeur dans le langue courante (%title)',
+ 'Create a new attribute value' => 'Créer une nouvelle valeur de déclinaison',
+ 'Delete attribute value' => 'Supprimer une valeur de déclinaison',
+ 'Do you really want to delete this attribute value ?' => 'Voulez-vous vraiment supprimer cette déclinaison ?',
'Edit a tax' => 'Modifier une taxe',
+ 'Editing tax' => 'En cours de modification de la taxe',
+ 'Tax created on %date_create. Last modification: %date_change' => 'Taxe créée le %date_create. Dernière modification: %date_change',
'Update rates' => 'Mettre à jour les taux',
'Add a new currency' => 'Ajouter une devise',
'ISO 4217 Code' => 'Code ISO 4217',
- 'Rate in €' => 'Taux en € ',
+ 'Rate in €' => 'Taux en €',
'Change this currency' => 'Modifier cette devise',
'Delete this currency' => 'Supprimer cette devise',
+ '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.',
+ 'Enter here the currency name in the default language (%title)' => 'Entrez ici le nom de la devise dans la langue par défaut (%title)',
'ISO 4217 code' => 'Code ISO 4217',
'Currency rate' => 'Taux de la devise',
+ '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)',
'Create a new currency' => 'Créer une nouvelle devise',
'Create this currency' => 'Créer cette devise',
- 'Delete currency' => 'Supprimer la devise',
+ 'Delete currency' => 'Supprimer cette devise',
+ 'Do you really want to delete this currency ?' => 'Voulez-vous vraiment supprimer cette devise ?',
+ 'Enter new currency position' => 'Modifier la position de la devise',
'Edit an order' => 'Editer une commande',
'Ordered products' => 'Produits commandés',
'Invoice and Delivery' => 'Livraison et facturation',
@@ -337,64 +442,65 @@ return array(
'Edit order address' => 'Editer l\'adresse de commande ',
'Confirm changes' => 'Valider les modifications',
'System Logs' => 'Logs système',
- 'System Logs configuration' => 'Configuration logs système',
+ 'System Logs configuration' => 'Configuration du système de logs',
'General configuration' => 'Configuration générale',
- 'Log lines format' => 'Format des lignes des logs',
+ '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.',
+ '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:',
+ 'Message level' => 'Niveau du message',
+ 'date in yyyy-mm-dd format' => 'date au format yyyy-mm-dd',
+ 'hour in hh:mm:ss format' => 'date au format hh:mm:ss',
'Yes' => 'Oui',
'No' => 'Non',
+ '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',
'File names' => 'Noms du fichier',
- 'IP Addresses' => 'Adresse IP',
+ 'Your current IP address is %ip' => 'Votre adresse IP courante est %ip',
'Destinations' => 'Destinations',
+ 'Activate this log destination' => 'Activer cette destination de log',
+ 'Thelia Product Templates' => 'Templates produit Thelia',
+ 'Thelia product templates' => 'templates produit Thelia',
+ 'Add a new product template' => 'Ajouter un nouveau template produit',
+ 'Change this template' => 'Modifier ce template',
+ 'Change this product template' => 'Modifier ce template produit',
+ 'Delete this product template' => 'Supprimer ce template produit',
+ '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.',
'Template title' => 'Titre du template',
- 'Delete template' => 'Supprimer le template',
- 'Do you really want to delete this template ? It will be removed from all products.' => 'Voulez-vous vraiment supprimer ce template ? Il sera supprimer de tous les produits',
+ 'Enter here the template name in the default language (%title)' => 'Entrez ici le nom du template dans la langue par défaut (%title)',
+ 'Create a new product template' => 'Créer un nouveau template produit',
+ 'Create this product template' => 'Créer ce template produit',
+ 'Delete template' => 'Supprimer ce template produit',
+ '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.',
'Edit folder' => 'Modifier le dossier',
- 'Edit previous folder' => 'Modifier le dossier précèdent',
+ 'Edit folder %title' => 'Modifier le dossier %title',
+ 'Edit previous folder' => 'Modifier le dossier précédent',
'Edit next folder' => 'Modifier le dossier suivant',
'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 folder' => 'Sélectionnez un contenu et cliquez sur (+) pour l\'ajouter à ce dossier',
'No folders found' => 'Aucun dossier n\'a été trouvé.',
- 'Remove related content' => 'Supprimer le contenu lié',
- 'Thelia Languages' => 'Langages Thelia',
- 'Languages' => 'Langages',
- 'Locale' => 'Locale',
- 'Parameters' => 'Paramètres',
- 'activate' => 'activer',
+ 'This folder contains no contents' => 'Ce dossier ne contient aucun contenu',
+ 'Remove related content' => 'Enlever les contenus liés',
+ 'Do you really want to remove this related content ?' => 'Voulez-vous vraiment supprimer ce contenu lié ?',
+ 'Thelia Languages' => 'Langue Thelia',
+ 'Languages' => 'Langues',
'deactivate' => 'désactiver',
'en_US' => 'en_US',
'd-m-Y' => 'j-m-A',
- 'Delete language' => 'Supprimer langage',
- 'Impossible to change default languages. Please contact your administrator or try later' => 'Impossible de changer la langue par défaut. Veuillez contacter votre administrateur ou réessayer plus tard',
+ 'Do you really want to delete this language ?' => 'Voulez-vous vraiment supprimer cette langue ?',
'Edit category' => 'Editer la catégorie',
'Edit category %title' => 'Editer le titre de la catégorie : %title',
- 'Edit previous category' => 'Modifier la catégorie précédente',
- 'Preview category page' => 'Aperçu de la page catégorie',
- 'Edit next category' => 'Modifier la catégorie suivante',
'Related content' => 'Contenu associé',
'No available content in this folder' => 'Ce dossier est vide de contenus',
- 'Welcome' => 'Bienvenue',
'Login' => 'Connexion',
'Password' => 'Mot de passe',
- 'Loading Thelia lastest news...' => 'Chargement des dernières nouvelles sur Thelia',
'You can attach here some content to this product' => 'Attachez ici un ou plusieurs contenus à ce produit',
'Select a content and click (+) to add it to this product' => 'Chosiissez un contenu, et cliquez [+] pour l\'attacher au produit',
- 'This product contains no contents' => 'Ce produit ne contient aucun contenu',
- 'Product accessories' => 'Accessoires produit',
- 'Select a category...' => 'Sélectionnez une catégorie...',
- 'Select a product...' => 'Sélectionnez un produit',
- 'No categories found' => 'Aucune catégorie trouvée',
- 'Accessory title' => 'Titre de l\'accessoire',
- 'Delete this accessory' => 'Supprimer cet accessoire',
- 'Additional categories' => 'Catégorie additionnelle',
- ' (default)' => '(défaut)',
'Category title' => 'Titre de la catégorie',
- 'Remove the product from this category' => 'Supprimer le produit de cette catégorie',
- 'Do you really want to remove this related content from the product ?' => 'Voulez-vous vraiment enlever ce contenu lié de ce produit ?',
- 'Remove an accessory' => 'Enlever un accessoire',
- 'Do you really want to remove this accessory from the product ?' => 'Voulez-vous vraiment enlever cet accessoire de ce produit ?',
- 'Remove from category' => 'Enlever de la catégorie',
- 'Do you really want to remove the product from this category ?' => 'Voulez-vous vraiment enlever ce produit de cette catégorie ?',
+ '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 accessory from the product ?' => 'Voulez-vous vraiment supprimer cet accessoire de ce produit ?',
+ 'Do you really want to remove the product from this category ?' => 'Voulez-vous vraiment supprimer ce produit de cette catégorie ?',
+ 'Enter new accessory position' => 'Modifier la position de l\'accessoire',
'Lire la suite' => 'Lire la suite',
'Label' => 'Libellé',
'Edit a language' => 'Modifier une langue',
@@ -410,18 +516,15 @@ return array(
'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',
- 'Select an attribute...' => 'Sélectionnez un attribut',
- 'Delete this attribute' => 'Supprimer cet attribut',
- 'This template contains no attributes' => 'Ce template ne contient aucun attribut',
- 'Remove attribute' => 'Enlever l\'attribut',
- 'Do you really want to remove this attribute from the template ?' => 'Voulez-vous vraiment enlever cet attribut de ce template ?',
+ 'Select an attribute...' => 'Sélectionnez une déclinaison...',
+ 'Do you really want to remove this attribute from the template ?' => 'Voulez-vous vraiment supprimer cette déclinaison de ce template ?',
'Enter new category position' => 'Classement de la catégorie ',
+ 'Do you really want to remove this feature from the template ?' => 'Voulez-vous vraiment supprimer cette caractéristique de ce template ?',
'Show logs' => 'Voir les loge',
'Period' => 'Période',
'From' => 'De',
'To' => 'A',
'Resources' => 'Ressources',
- 'Store configuration' => 'Configuration du magasin',
'customer ref' => 'ref client',
'company' => 'entreprise',
'firstname & lastname' => 'Prénom & nom',
@@ -433,84 +536,70 @@ return array(
'Status' => 'Etat',
'Edit this order' => 'Editer cette commande ',
'Product title' => 'Titre du produit',
- 'Profile code' => 'Code du profile',
- 'Short description' => 'Courte description',
- 'Delete profile' => 'Supprimer le profile',
'Do you really want to delete this profile ?' => 'Voulez-vous vraiment supprimer ce profile ?',
- 'You can\'t delete this profile' => 'Vous ne pouvez supprimer ce produit',
'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 country' => 'Modifier un pays',
- 'Country description' => 'Description du pays',
- 'Create coupon' => 'Créer un code promo',
+ 'Editing country "%name"' => 'En cours de modification du pays "%name"',
+ 'Sorry, country ID=%id was not found.' => 'Veuillez nous excuser, le pays ID=%id n\'a pas été trouvé',
'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 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.',
+ 'Editing module' => 'En cours de modification du module',
+ '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 add this attribute to all product templates ?' => 'Voulez-vous vraiment ajouter cette déclinaison de tous les templates 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.',
+ 'Enter new attribute position' => 'Modifier la position de la déclinaison',
'Edit a customer' => 'Editer un client',
'Editing customer "%name"' => 'Edition du client "%name"',
- 'Edit customer %firstname %lastname' => 'Modifier le client %firstname %lastname',
'Customer informations' => 'Informations client',
'Default address' => 'Adresse par défaut',
'Other addresses' => 'Autres adresses',
'Add a new address' => 'Ajouter une nouvelle adresse',
- 'Cellular phone' => 'Téléphone portable',
'Edit this address' => 'Editer cette adresse',
'Use this address by default' => 'Utiliser comme adresse par défaut',
'orders for this customer' => 'commandes pour ce client',
'Sorry, customer ID=%id was not found.' => 'Veuillez nous excuser, le client ID=%id n\'a pas été trouvé',
- 'Create a customer address' => 'Créer une adresse client',
'Create this address' => 'Créer cette adresse',
- 'Edit a customer address' => 'Modifier une adresse client',
- 'Save this address' => 'Sauvegarder 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 ?',
- 'Configure' => 'Configurer',
- 'Thelia Shipping configuration' => 'Configuration des livraison Thelia',
- 'Add a new shipping configuration' => 'Ajouter une nouvelle configuration de livraison',
- 'Change this shipping configuration' => 'Modifier cette configuration de livraison',
- 'Delete this shipping configuration' => 'Supprimer cette configuration de livraison',
- 'Edit an image' => 'Modifier une image',
- 'Image' => 'Image',
+ 'Do you really want to delete this shipping configuration ?' => 'Voulez-vous vraiment supprimer cette configuration de livraison ?',
'Editing image "%name"' => 'En cours de modification de l\'image "%name"',
- 'Edit image "%name"' => 'Modification de l\'image "%name"',
'Back' => 'Retour',
- 'Preview' => 'Aperçu',
- 'File' => 'Fichier',
- 'Post Scriptum' => 'Post-scriptum',
+ 'Sorry, image ID=%id was not found.' => 'Veuillez nous excuser, l\'image ID=%id n\'a pas été trouvée',
+ 'Editing shipping zone "%name"' => 'En cours de modification de la zone de livraison "%name"',
'Add' => 'Ajouter',
- 'Zones' => 'Zones',
- 'Delete this zone' => 'Supprimer cette zone',
- 'Remove zone' => 'Supprimer zone',
+ 'Do you really want to remove this zone ?' => 'Voulez-vous vraiment supprimer cette zone ?',
'Edit a document' => 'Modifier un document',
'Document' => 'Document',
'Editing document "%name"' => 'En cours de modification du document "%name"',
'Edit document "%name"' => 'Modifier le document "%name"',
'Document informations' => 'Informations sur le document',
- 'Coupon : ' => 'Code promo',
- 'days left' => 'jours restant',
- 'May be cumulative' => 'Pourra être cumulé',
- 'Can\'t be cumulative' => 'Ne pourra pas être cumulé',
- 'Will remove postage' => 'Enlèvera les frais de port',
- 'Won\'t remove postage' => 'N\'enlèvera pas les frais de port',
- 'Will be available on special offers' => 'Sera disponible sur les offres spéciales',
- 'Won\'t be available on special offers' => 'Ne sera pas disponible sur les offres spéciales',
+ 'Sorry, document ID=%id was not found.' => 'Veuillez nous excuser, le document ID=%id n\'a pas été trouvé',
+ 'Coupon : ' => 'Code promo:',
+ 'Is disabled' => 'Est désactivé',
+ 'days left' => 'jours restants',
+ 'May be cumulative' => 'Peut être cumulé',
+ 'Can\'t be cumulative' => 'Ne peut être cumulé',
+ 'Will remove postage' => 'Supprimera les frais de port',
+ 'Won\'t remove postage' => 'Ne supprimera pas les frais de port',
+ 'Will be available on special offers' => 'Sera disponible pour les produits en promotion',
+ 'Won\'t be available on special offers' => 'Ne sera pas disponible pour les produits en promotion',
'Application field' => 'Champs d\'application',
'Do you really want to enable this element ?' => 'Voulez-vous vraiment activer cet élément ?',
- 'Templates' => 'Template',
+ 'Edit a template' => 'Modifier un template',
+ 'Templates' => 'Templates',
+ 'Editing template "%name"' => 'En cours de modification du template "%name"',
+ 'Edit template "%name"' => 'Modifier le template "%name"',
'Template name' => 'Nom du template',
+ 'Sorry, template ID=%id was not found.' => 'Veuillez nous excuser, le template ID=%id n\'a pas été trouvé',
'taxes' => 'taxes',
'and' => 'et',
'tax rules' => 'règles de taxe',
- 'Example :' => 'Exemple:',
- 'Create a new tax' => 'Créer une nouvelle taxe',
- 'Change this tax' => 'Modifier cette taxe',
- 'Delete this tax' => 'Supprimer cette taxe',
- 'Delete tax' => 'Supprimer une taxe',
'Do you really want to delete this tax ?' => 'Voulez-vous vraiment supprimer cette taxe ?',
'Delete tax rule' => 'Supprimer une règle de taxe',
'Do you really want to delete this tax rule ?' => 'Voulez-vous vraiment supprimer cette règle de taxe ?',
@@ -533,11 +622,7 @@ return array(
'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 ? ',
- 'Translation' => 'Traduction',
- 'PDF templates' => 'Template du PDF',
- 'Thelia core' => 'Cœur de Thelia',
'Warning' => 'Attention',
- 'Categories in %cat' => 'Catégories en $cat',
'Top level categories' => 'Catégories de niveau 1 ',
'Add a new category' => 'Ajouter une catégorie',
'Browse this category' => 'Parcourir cette catégorie',
@@ -545,10 +630,8 @@ return array(
'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.',
- 'Products in %cat' => 'Produits en %cat',
'Top level Products' => 'Produits mis en avant',
'Add a new product' => 'Ajouter un nouveau produit',
- 'Delete this product' => 'Supprimer ce 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. ',
'Create a new category' => 'Créer une catégorie',
'Create this category' => 'Créer cette catégorie',
@@ -569,64 +652,44 @@ return array(
'Do you really want to delete this product ?' => 'Voulez-vous vraiment supprimer ce produit ?',
'Enter new product position' => 'Classement du produit',
'OK' => 'OK',
- 'Product reference' => 'Référence produit',
- 'You can attach this product to more categories in the details tab.' => 'Vous pouvez lier ce produit à plus de catégories dans l\'onglet détail.',
- 'Product created on %date_create. Last modification: %date_change' => 'Produit créé le %date_create. Dernière modification : %date_change ',
- 'classic modules' => 'module classique',
- 'Enable/Disable' => 'Activer/Désactiver',
- 'Deactivate %title module' => 'Désactiver le module %title',
- 'deactivation' => 'désactivation',
- 'activate %title module' => 'activer le module %title',
- 'activation' => 'activation',
- 'Configure this module' => 'Configurer ce module',
- 'Read the documentation of this module' => 'Lire la documentation de ce module',
- 'Edit this module' => 'Modifier ce module',
- 'Delete this module' => 'Supprimer ce module',
- 'Edit information in %lng' => 'Modifier les information en %Ing',
- 'Edit prices in %curr' => 'Modifier les prix en %curr',
'Save and close' => 'Enregistrer et fermer',
- 'Close' => 'Fermer',
- 'Send files' => 'Envoyer les fichiers',
- 'Drop files to upload' => 'Déposez les fichiers à envoyer sur le serveur',
- 'Browse files' => 'Sélectionner les fichiers',
- 'Can\'t load documents, please refresh this page.' => 'Échec lors du chargement du document, veuillez réessayer',
- 'Update this image' => 'Mettre à jour cette image',
- 'There is no images attached to this %type.' => 'Il n\'y a pas d\'image liée à ce %type',
- 'Additional Folders' => 'Dossier additionnels',
- 'Select a folder and click (+) to add it to the additional folder list' => 'Sélectionnez un dossier et cliquez (+) pour l\'ajouter à la liste des dossiers additionnel',
- 'No Folders found' => 'Aucun dossier trouvé',
- 'This product doesn\'t belong to any additional folder.' => 'Ce produit n\'appartient à aucun dossier additionnel',
- 'Confirmation' => 'Confirmation',
'Do you really want to delete this element ?' => 'Voulez-vous vraiment supprimer cet élément ?',
- 'Confirm' => 'Je confirme',
- 'Phone number' => 'Numéro de téléphone',
- 'Cellular phone number' => 'Numéro de téléphone portable',
- 'Editing %fold' => 'Modification de %fold',
- '(edit)' => '(modifier)',
- 'Editing %title' => 'Modifier %title',
- 'There is no documents attached to this %type.' => 'Il n\'y a aucune document lié à ce %type',
+ '(edit)' => '(modification)',
+ 'Editing %title' => 'En cours de modification de %title',
'Editing %cat' => 'Edition de %cat',
- 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisé si un résumé ou une introduction est nécessaire',
- 'A short post-description information' => 'Une courte post-description',
- 'Short conclusion' => 'Courte conclusion',
- 'Can\'t load images, please refresh this page.' => 'Échec lors du chargement de l\'image, veuillez réessayer',
+ 'Can\'t load images, please refresh this page.' => 'Impossible de charger les images, veuillez rafraîchir cette page.',
+ 'Pricing' => 'Tarifs',
+ 'The default pricing is used when no combination is defined.' => 'Le tarif par défaut est utilisé lorsque aucune combinaison n\'est définie.',
+ 'Price excl. taxes' => 'Prix taxes exclues',
+ 'Product price including taxes' => 'Prix du produit taxes incluses',
+ 'Price incl. taxes' => 'Prix taxes incluses',
'Product EAN Code' => 'Code EAN du produit',
'Current quantity' => 'Quantité actuelle',
'Promotion' => 'Promotion',
+ 'Sale price incl. taxes' => 'Prix de vente taxes incluses',
+ 'Attribute Combinations' => 'Combinaison de déclinaisons',
+ 'Quickly create combinations using the combination builder' => 'Créer rapidement une combinaison via le constructeur de combinaison',
'Combination builder' => 'Constructeur de combinaison',
'Add a new combination' => 'Ajouter une nouvelle combinaison',
'EAN Code' => 'Code EAN',
- 'Weight
(Kg)' => 'Poids
(Kg) ',
+ 'Price
w/o taxes (%currency)' => 'Prix
sans taxes (%currency)',
+ 'Price
w/ taxes (%currency)' => 'Prix
avec taxes (%currency)',
+ 'Weight
(Kg)' => 'Poids
(Kg)',
'Sale' => 'Vente',
'New' => 'Nouveau',
+ 'Sale price
w/o taxes (%currency)' => 'Prix de vente
avec taxes (%currency)',
+ 'Sale price
w/ taxes (%currency)' => 'Prix de vente
sans taxes (%currency)',
'Delete this combination' => 'Supprimer cette combinaison',
- 'Attribute' => 'Attribut',
- 'Select an attribute and click (+) to view available values' => 'Sélectionnez un attribut et cliquez (+) afin de voir les valeurs disponibles',
- 'Remove selected values' => 'Supprimer la valeur sélectionnée',
+ 'Attribute' => 'Déclinaison',
+ 'Select an attribute value...' => 'Sélectionnez une valeur de déclinaison...',
+ 'Remove selected values' => 'Enlever les valeur sélectionnées',
'Create a new combination' => 'Créer une nouvelle combinaison',
'Create this combination' => 'Créer cette combinaison',
'Delete a combination' => 'Supprimer une combinaison',
'Do you really want to delete this combination ?' => 'Voulez-vous vraiment supprimer cette combinaison ?',
+ '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.',
'Combination reference' => 'Référence de la combinaison',
+ 'Combination EAN Code' => 'Combinaison de code EAN',
+ '0 combinations' => '0 combinaisons',
'Create combinations' => 'Créer des combinaisons',
);
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/translations.html b/templates/backOffice/default/translations.html
index fa41a3cf6..5a48e5277 100755
--- a/templates/backOffice/default/translations.html
+++ b/templates/backOffice/default/translations.html
@@ -45,6 +45,7 @@
+
@@ -91,6 +92,19 @@
+ {else if $item_to_translate == 'ma'}
+
{$DESCRIPTION|default:'N/A'}
+{$DESCRIPTION|default:'N/A' nofilter}