@@ -1,12 +1,18 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'"%param" parameter cannot be empty in loop type: %type, name: %name' => 'Le paramètre "%param" ne peut être vide dans la boucle type: %type, nom: %name ',
|
||||
'"%param" parameter is missing in loop type: %type, name: %name' => 'Le paramètre "%param" est absent dans la boucle type: %type, nom: %name ',
|
||||
'%obj SEO modification' => 'Modification SEO de %obj',
|
||||
'%obj creation' => 'Création de %obj',
|
||||
'%obj modification' => 'Modification de %obj',
|
||||
'\'%type\' loop class should extends Thelia\Core\Template\Element\BaseLoop' => 'La classe de boucle \'%type\' doit hériter de Thelia\Core\Template\Element\BaseLoop ',
|
||||
'A currency with code "%name" already exists.' => 'Une devise avec la code "%name" existe déjà',
|
||||
'A loop named \'%name\' already exists in the current scope.' => 'Une boucle nommée \'%name\' existe déjà dans le scope courant',
|
||||
'A message with name "%name" already exists.' => 'Un message avec le nom "%name" existe déjà.',
|
||||
'A product with reference %ref already exists. Please choose another reference.' => 'Un produit portant la référfence %ref existe déja. Merci de choisir une autre référence.',
|
||||
'A user already exists with this email address. Please login or if you\'ve forgotten your password, go to Reset Your Password.' => 'Un utilisateur existe déjà avec cette adresse email. Connectez-vous ou demandez une réinitialisation de votre mot de passe.',
|
||||
'A value for attribute "%name" is already present in the combination' => 'Une valeur pour la déclinaison "%name" est déjà présente dans la combinaison',
|
||||
'A variable with name "%name" already exists.' => 'Une variable avec le nom "%name" existe déjà.',
|
||||
'Activate logs only for these IP Addresses' => 'Activer les logs uniquement pour ces adresses IP',
|
||||
'Activate logs only for these files' => 'Activer les logs uniquement pour ces fichiers',
|
||||
@@ -30,12 +36,16 @@ return array(
|
||||
'Available shipping zones' => 'Zones de livraison disponibles',
|
||||
'Bad tax list JSON' => 'Mauvais JSON de la liste des taxes',
|
||||
'Business ID' => 'ID du business',
|
||||
'By cart total amount' => 'Montant total du panier',
|
||||
'By number of articles in cart' => 'Nombre d\'articles dans le panier',
|
||||
'Cannot find a default country. Please define one.' => 'Impossible de trouver un pays par défaut. Veuillez en définir un.',
|
||||
'Cannot find the shop country. Please select a shop country.' => 'Impossible de trouver le pays du magasin. Veuillez en sélectionner un.',
|
||||
'Cannot instanciante module "%name%": the namespace is null. Maybe the model is not loaded ?' => 'Ne peut instancier le module "%name%": le namespace est null. Peut-être que le modèle n\'est pas chargé ?',
|
||||
'Category title *' => 'Titre de la catégorie *',
|
||||
'Cellphone' => 'Numéro de portable',
|
||||
'Chapo' => 'Chapeau',
|
||||
'Check the amount of product in the Cart' => 'Applique une condition sur le nombre total d\'articles dans le panier',
|
||||
'Check the total Cart amount in the given currency' => 'Applique une condition sur le montant total du panier dans la devise indiquée.',
|
||||
'City' => 'Ville',
|
||||
'Combination builder' => 'générateur de combinaison',
|
||||
'Compagny' => 'Société',
|
||||
@@ -55,24 +65,35 @@ return array(
|
||||
'Default folder *' => 'Dossier par défaut *',
|
||||
'Default product category *' => 'Catégorie du produit par défaut *',
|
||||
'Default product sale element' => 'Product Sale Element par défaut',
|
||||
'Deleting document for %id% with parent id %parentId%' => 'Suppression du document %id% avec l\'ID parent %parentId%',
|
||||
'Deleting image for %id% with parent id %parentId%' => 'Suppression de l\'image %id% avec l\'ID parent %parentId%',
|
||||
'Delivery module ID not found' => 'Id du module de livraison non trouvé',
|
||||
'Description' => 'Description',
|
||||
'Detailed description' => 'Description détaillée',
|
||||
'Disabled' => 'Désactivé',
|
||||
'Document deleted successfully' => 'Le document a été supprimé.',
|
||||
'Document position updated' => 'La position du document a été modfiée',
|
||||
'EAN Code' => 'Code EAN',
|
||||
'Email Address' => 'Adresse mail',
|
||||
'Email address' => 'Adresse e-mail',
|
||||
'Emergency' => 'Urgence',
|
||||
'Enable remote SMTP use' => 'Activer l\'utilisation d\'un serveur SMTP distant.',
|
||||
'Encryption' => 'Chiffrement',
|
||||
'Error during %action process : %error. Exception was %exc' => 'Erreur lors de %action: %error. Exception: %exc ',
|
||||
'Error occured while processing order ref. %ref, ID %id: %err' => 'Un erreur est survenue paedant le traitement de la commande ref. %ref, ID %id; %err',
|
||||
'Errors' => 'Erreurs',
|
||||
'Everybody can use it (no condition)' => 'Tout le monde peut l\'utiliser (pas de condition)',
|
||||
'Fail to delete document for %id% with parent id %parentId% (Exception : %e%)' => 'Echec lors de la suppression du document %id% avec l\'ID parent %parentId% (Exception : %e%)',
|
||||
'Fail to delete image for %id% with parent id %parentId% (Exception : %e%)' => 'Echec lors de la suppression de l\'image %id% avec l\'ID parent %parentId% (Exception : %e%)',
|
||||
'Fail to update document position' => 'La position du document e n\'a pas pu être modfiée',
|
||||
'Fail to update image position' => 'La position de l\'image n\'a pas pu être modfiée',
|
||||
'Failed to create instance of module "%name%" when trying to delete module. Module directory has probably been deleted' => 'Ne peut créer une instance du module "%name%" lors de la suppression du module. Le répertoire du module à sans doute été supprimé manuellement.',
|
||||
'Failed to find a payment Module with ID=%mid for order ID=%oid' => 'Ne peut trouver le module de paiement ID=%mid pour la commande ID=%oid ',
|
||||
'Failed to open translation file %file. Please be sure that this file is writable by your Web server' => 'L\'ouverture du fichier %file a échoué. Merci de vérifier que ce fichier est accessible en écriture pour votre serveur Web.',
|
||||
'Failed to update language definition: %ex' => 'Erreur lors de la mise à jour de la définition de la langue : %ex',
|
||||
'Fax' => 'Fax',
|
||||
'Feature value does not match FLOAT format' => 'valeur de caractéristique n\'est pas un FLOAT',
|
||||
'File is too heavy, please retry with a file having a size less than %size%.' => 'La taille du fichier est trop importante, et doit être inféreiure à %size%.',
|
||||
'First Name' => 'Prénom',
|
||||
'Firstname' => 'Prénom',
|
||||
'Folder title *' => 'Titre du dossier *',
|
||||
@@ -84,9 +105,14 @@ return array(
|
||||
'ISO 639-1 Code' => 'Code ISO 639-1',
|
||||
'ISO Code *' => 'Code ISO *',
|
||||
'If a translation is missing or incomplete :' => 'Si une traduction est manquante ou incomplète :',
|
||||
'If cart products quantity is <strong>%operator%</strong> %quantity%' => 'Si le nombre total d\'articles dans le panier est <strong>%operator%</strong> %quantity%',
|
||||
'If cart total amount is <strong>%operator%</strong> %amount% %currency%' => 'Si le total du panier est <strong>%operator%</strong> %amount% %currency% ',
|
||||
'Image position updated' => 'La position de l\'image a été modfiée',
|
||||
'Images deleted successfully' => 'L\'image a été supprimée.',
|
||||
'Impossible to delete a customer who already have orders' => 'Impossible de supprimer un client si celui-ci a déjà une commande',
|
||||
'Information' => 'Information',
|
||||
'Invalid product_sale_elements' => 'product_sale_elements invalide',
|
||||
'Invalid value "%value" for "%param" parameter in loop type: %type, name: %name' => 'La valeur "%value" est invalide pour le paramètre "%param" dans la boucle type: %type, nom: %name ',
|
||||
'Invalid value for walkMode parameter: %value' => 'Valeur incorrecte pour le paramètre walkMode : %value',
|
||||
'Is it the default product sale element ?' => 'Product Sale Element par défaut ?',
|
||||
'Language name' => 'Nom de la langue',
|
||||
@@ -96,12 +122,20 @@ return array(
|
||||
'Log level *' => 'Niveau de log *',
|
||||
'Login' => 'Connexion',
|
||||
'Login failed. Please check your username and password.' => 'Erreur de login. Veuillez vérifier votre login et votre mot de passe.',
|
||||
'Loop cannot implements multiple Search Interfaces : `PropelSearchLoopInterface`, `ArraySearchLoopInterface`' => 'Une boucle ne peut implémenter plusieurs Search Interfaces : `PropelSearchLoopInterface`, `ArraySearchLoopInterface`',
|
||||
'Loop must implements \'PropelSearchLoopInterface\' to be timestampable' => 'Les classes \'boucle\' doivent implémenter \'PropelSearchLoopInterface\' pour être horodatables',
|
||||
'Loop must implements \'PropelSearchLoopInterface\' to be versionable' => 'Les classes \'boucle\' doivent implémenter \'PropelSearchLoopInterface\' pour être versonnables',
|
||||
'Loop must implements one of the following interfaces : `PropelSearchLoopInterface`, `ArraySearchLoopInterface`' => 'Une boucle doit implémenter au moins une de ces interfaces : `PropelSearchLoopInterface`, `ArraySearchLoopInterface`',
|
||||
'Loop type \'%type\' is not defined.' => 'La boucle de type \'%type\' n\'existe pas.',
|
||||
'Make this address as my primary address' => 'Choisir cette adresse comme adresse par défaut',
|
||||
'Message subject' => 'Sujet',
|
||||
'Meta Description' => 'Meta description',
|
||||
'Meta Keywords' => 'Meta keywords',
|
||||
'Missing \'name\' parameter in loop arguments' => 'Le paramètre obligatoire \'name\' est absent des paramètre de la boucle',
|
||||
'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Le paramètre obligatoire \'rel\' est absent des paramètre de la boucle ifloop/elseloop',
|
||||
'Missing \'rel\' parameter in page loop' => 'Le paramètre obligatoire \'rel\' est absent des paramètre de la boucle \'page\'',
|
||||
'Missing \'type\' parameter in loop arguments' => 'Le paramètre obligatoire \'type\' est absent des paramètre de la boucle ',
|
||||
'Missing \'type\' parameter in {count} loop arguments' => 'Le paramètre obligatoire \'type\' est absent des paramètre de la boucle {count}',
|
||||
'Module ID not found' => 'Id du module non trouvé',
|
||||
'Name' => 'Nom',
|
||||
'Name *' => 'Nom *',
|
||||
@@ -113,6 +147,7 @@ return array(
|
||||
'No %obj was created.' => 'aucun %obj n\'a été créé.',
|
||||
'No %obj was updated.' => 'Aucun %obj mis à jour',
|
||||
'No module found for code \'%item\'' => 'Aucun module trouvé pour \'%item\' ',
|
||||
'No pagination currently defined for loop name \'%name\'' => 'La pagination n\'est pas définie pour la boucle \'%name\'',
|
||||
'No, I am a new customer.' => 'Non, je suis un nouveau client.',
|
||||
'Not found' => 'Non trouvé.',
|
||||
'Notices' => 'Notices',
|
||||
@@ -129,6 +164,7 @@ return array(
|
||||
'Percentage removed from the cart' => 'Pourcentage déduit du panier',
|
||||
'Phone' => 'Téléphone',
|
||||
'Please accept the Terms and conditions in order to register.' => 'Veuillez accepter les termes et conditions pour vous inscrire.',
|
||||
'Please check your input: %error' => 'Merci de vérifier votre saisie: %error',
|
||||
'Please enter your email address' => 'Renseignez votre adresse mail',
|
||||
'Please enter your password' => 'Entrez votre mot de passe.',
|
||||
'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Veuillez spécifier soit le paramètre \'chemin\' ou \'fichier\' dans la fonction {url}',
|
||||
@@ -166,6 +202,7 @@ return array(
|
||||
'Redirecting to %url' => 'Redirection vers %url',
|
||||
'Reference' => 'Référence',
|
||||
'Reference *' => 'Référence *',
|
||||
'Related loop name \'%name\'\' is not defined.' => 'La boucle \'%name\' n\'est pas définie.',
|
||||
'Remember me ?' => 'Se souvenir de moi ?',
|
||||
'Remove X amount to total cart' => 'Enlève un montant fixe du total du panier',
|
||||
'Remove X percent to total cart' => 'Enlève un pourcentage du panier total',
|
||||
@@ -176,13 +213,15 @@ return array(
|
||||
'Rotated Text File' => 'Rotation du fichier texte',
|
||||
'Sale price excluding taxes' => 'Prix de vente Hors Taxes',
|
||||
'Sale price including taxes' => 'Prix de vente Toutes Taxes Comprises',
|
||||
'Saving documents for %parentName% parent id %parentId% (%parentType%)' => 'Enregistrement des documents pour %parentName% ID parent %parentId% (%parentType%)',
|
||||
'Saving images for %parentName% parent id %parentId% (%parentType%)' => 'Enregistrement des images pour %parentName% ID parent %parentId% (%parentType%)',
|
||||
'Shipping zone name' => 'Nom de la zone de livraison',
|
||||
'Show redirections *' => 'Montrer les redirections *',
|
||||
'Sorry, an error occured: %msg' => 'Désolé, une erreur est survenue : %msg',
|
||||
'Sorry, you are not allowed to perform this action.' => 'Désolé, vous n\'êtes pas autorisé à réaliser cette action.',
|
||||
'Sorry, you\'re not allowed to perform this action' => 'Désolé, vous n\'êtes pas autorisé à réaliser cette action.',
|
||||
'Source IP' => 'IP source',
|
||||
'Stats on %month/%year' => 'Statisticues pour %month/%year ',
|
||||
'Stats on %month/%year' => 'Statistiques pour %month/%year ',
|
||||
'Store configuration failed.' => 'Erreur de configuration du magasin.',
|
||||
'Store email address' => 'Adresse mail du magasin',
|
||||
'Store logs into text file' => 'Conserver les logs dans des fichiers texte',
|
||||
@@ -204,9 +243,13 @@ return array(
|
||||
'Text File' => 'Fichier texte',
|
||||
'Text Message' => 'Message au format texte',
|
||||
'The TaxEngine should be passed to this form before using it.' => 'Le moteur de taxe doit être passé au formulaire avant d\'être utilisé.',
|
||||
'The image which replaces an undefined country flag (%file) was not found. Please check unknown-flag-path configuration variable, and check that the image exists.' => 'L\'image qui remplace un drapeau de pays manquant (%file) n\'a pas été trouvée. Merci de vérifier la variable de configuration unknown-flag-path.',
|
||||
'The loop name \'%name\' is already defined in %className class' => 'La boucle \'%name\' est déjà définir dans la classe %className',
|
||||
'This category is online.' => 'Cette catégorie est en ligne.',
|
||||
'This content is online.' => 'Ce contenu est en ligne.',
|
||||
'This coupon does not exists' => 'Ce code promo n\'existe pas',
|
||||
'This coupon will remove the entered amount to the customer total checkout. If the discount is superior to the total checkout price the customer will only pay the postage. Unless if the coupon is set to remove postage too.' => 'Ce code promo retire le montant indiqué du total de la commande. Si ce montant est supérieur au total de la commande, le client ne paiera que les frais de port, à moins que ce code promo n\'offre aussi les frais de port.',
|
||||
'This coupon will remove the entered percentage to the customer total checkout. If the discount is superior to the total checkout price the customer will only pay the postage. Unless if the coupon is set to remove postage too.' => 'Ce code promo retire le pourcentage indiqué du total de la commande. Si ce montant est supérieur au total de la commande, le client ne paiera que les frais de port, à moins que ce code promo n\'offre aussi les frais de port.',
|
||||
'This email already exists.' => 'Cette adresse email existe déjà',
|
||||
'This email does not exists' => 'Cette adresse email n\'existe pas',
|
||||
'This extension must be installed and loaded' => 'Cette extension doit être installée et chargée.',
|
||||
@@ -215,12 +258,14 @@ return array(
|
||||
'This product is on sale' => 'Ce produit est en promo',
|
||||
'This product is online' => 'Ce produit est en ligne',
|
||||
'This product_sale_elements_id does not exists for this product : %d' => 'Le product_sale_elements_id n\'existe pas pour ce produit : %d',
|
||||
'This template is in use in some of your products, and cannot be deleted. Delete it from all your products and try again.' => 'Ce template est utilisé par des produits, et ne peut être supprimé. Retirez-le de tous vos produits, et ré-essayez.',
|
||||
'This value should not be blank.' => 'Cette valeur ne doit pas être vide.',
|
||||
'Timeout' => 'Délai d\'attente expiré',
|
||||
'Title' => 'Titre',
|
||||
'Title *' => 'Titre *',
|
||||
'Title ID not found' => 'ID de la civilité non trouvé',
|
||||
'Type' => 'Type',
|
||||
'Unable to process your request. Please try again (%err).' => 'Echec lors du traitement de votre requête. Merci de ré-essayer (%err).',
|
||||
'Unavailable' => 'Non disponible.',
|
||||
'Undefined loop argument "%name"' => 'Argument de boucle invalide: "%name" ',
|
||||
'Undefined search mode \'%mode\'' => 'Mode de recherche \'%mode\' invalide',
|
||||
@@ -236,18 +281,27 @@ return array(
|
||||
'Will return always true' => 'Retourne toujours "vrai"',
|
||||
'Yes, I have a password :' => 'Oui, j\'ai un mot de passe :',
|
||||
'You are already registered!' => 'Vous êtes déjà enregistré !',
|
||||
'You can only upload images (.png, .jpg, .jpeg, .gif)' => 'Seules les images sont autorisées (.png, .jpg, .jpeg, .gif)',
|
||||
'Your Email Address' => 'Votre adresse mail',
|
||||
'Your Message' => 'Votre message',
|
||||
'Your current password does not match.' => 'Votre mot de passe actuel ne correspond pas',
|
||||
'Zip code' => 'Code postal',
|
||||
'date format' => 'Format de date',
|
||||
'delivery module %s is not a Thelia\Module\DeliveryModuleInterface' => 'le module de livraison %s n\'est pas un Thelia\Module\DeliveryModuleInterface',
|
||||
'different from' => 'différent de',
|
||||
'equal to' => 'égal à',
|
||||
'in' => 'est parmis',
|
||||
'inferior or equal to' => 'inférieur ou égal à',
|
||||
'inferior to' => 'inférieur à',
|
||||
'language locale' => 'Langue locale',
|
||||
'mailing system modification' => 'Modification du système d\'envoi de mail.',
|
||||
'not in' => 'n\'est pas parmis',
|
||||
'password confirmation is not the same as password field' => 'le mot de passe de confirmation n\'est pas le même que le champ mot de passe',
|
||||
'password must be composed of at least 4 characters' => 'le mot de passe doit être composé d\'au moins 4 caractères',
|
||||
'payment module %s is not a Thelia\Module\PaymentModuleInterface' => 'Le module de paiement %s n\'est pas une instance de Thelia\Module\PaymentModuleInterface ',
|
||||
'quantity value is not valid' => 'la valeur de la quantité n\'est pas valide',
|
||||
'superior or equal to' => 'supérieur ou égal à',
|
||||
'superior to' => 'supérieur à',
|
||||
'this product id does not exists : %d' => 'l\'id du produit %d n\'existe pas',
|
||||
'time format' => 'Format d\'heure',
|
||||
);
|
||||
|
||||
@@ -264,7 +264,7 @@ class AreaController extends AbstractCrudController
|
||||
// Check current user authorization
|
||||
if (null !== $response = $this->checkAuth($this->resourceCode, array(), AccessManager::UPDATE)) return $response;
|
||||
$request = $this->getRequest();
|
||||
$removeCountryEvent = new AreaRemoveCountryEvent($request->request->get('areai_id', 0), $request->request->get('country_id', 0));
|
||||
$removeCountryEvent = new AreaRemoveCountryEvent($request->request->get('area_id', 0), $request->request->get('country_id', 0));
|
||||
|
||||
$this->dispatch(TheliaEvents::AREA_REMOVE_COUNTRY, $removeCountryEvent);
|
||||
|
||||
|
||||
@@ -12,8 +12,11 @@
|
||||
|
||||
namespace Thelia\Controller\Admin;
|
||||
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Thelia\Core\Security\Resource\AdminResources;
|
||||
use Thelia\Core\Security\AccessManager;
|
||||
use Thelia\Core\Translation\Translator;
|
||||
use Thelia\Log\Tlog;
|
||||
use Thelia\Model\Module;
|
||||
use Thelia\Model\ModuleQuery;
|
||||
use Thelia\Core\Template\TemplateHelper;
|
||||
@@ -121,6 +124,12 @@ class TranslationsController extends BaseAdminController
|
||||
$walkMode = TemplateHelper::WALK_MODE_TEMPLATE;
|
||||
}
|
||||
|
||||
// If the module is not active, load the translation file,
|
||||
// as it is not already loaded in Thelia.php
|
||||
if (! empty ($domain) && ! $module->getActivate()) {
|
||||
$this->loadTranslation($i18n_directory, $domain);
|
||||
}
|
||||
|
||||
// List front and back office templates defined by this module
|
||||
$templateArguments['back_office_templates'] =
|
||||
implode(',', $this->getModuleTemplateNames($module, TemplateDefinition::BACK_OFFICE));
|
||||
@@ -128,6 +137,23 @@ class TranslationsController extends BaseAdminController
|
||||
$templateArguments['front_office_templates'] =
|
||||
implode(',', $this->getModuleTemplateNames($module, TemplateDefinition::FRONT_OFFICE));
|
||||
|
||||
// Check if we have admin-include files
|
||||
try {
|
||||
$finder = Finder::create()
|
||||
->files()
|
||||
->depth(0)
|
||||
->in($module->getAbsoluteAdminIncludesPath())
|
||||
->name('/\.html$/i')
|
||||
;
|
||||
|
||||
$hasAdminIncludes = $finder->count() > 0;
|
||||
}
|
||||
catch (\InvalidArgumentException $ex) {
|
||||
$hasAdminIncludes = false;
|
||||
}
|
||||
|
||||
$templateArguments['has_admin_includes'] = $hasAdminIncludes;
|
||||
|
||||
break;
|
||||
|
||||
// Thelia Core
|
||||
@@ -172,10 +198,16 @@ class TranslationsController extends BaseAdminController
|
||||
$i18n_directory = $template->getAbsoluteI18nPath();
|
||||
|
||||
$domain = $template->getTranslationDomain();
|
||||
|
||||
// Load translations files is this template is not the current template
|
||||
// as it is not loaded in Thelia.php
|
||||
if (! TemplateHelper::getInstance()->isActive($template)) {
|
||||
$this->loadTranslation($i18n_directory, $domain);
|
||||
}
|
||||
}
|
||||
|
||||
// Load strings to translate
|
||||
if ($directory) {
|
||||
if ($directory && ! empty($domain)) {
|
||||
|
||||
// Save the string set, if the form was submitted
|
||||
if ($i18n_directory) {
|
||||
@@ -239,4 +271,24 @@ class TranslationsController extends BaseAdminController
|
||||
if (null !== $response = $this->checkAuth(AdminResources::LANGUAGE, array(), AccessManager::UPDATE)) return $response;
|
||||
return $this->renderTemplate();
|
||||
}
|
||||
|
||||
private function loadTranslation($directory, $domain)
|
||||
{
|
||||
try {
|
||||
$finder = Finder::create()
|
||||
->files()
|
||||
->depth(0)
|
||||
->in($directory);
|
||||
|
||||
/** @var \DirectoryIterator $file */
|
||||
foreach ($finder as $file) {
|
||||
list($locale, $format) = explode('.', $file->getBaseName(), 2);
|
||||
|
||||
Translator::getInstance()->addResource($format, $file->getPathname(), $locale, $domain);
|
||||
}
|
||||
} catch (\InvalidArgumentException $ex) {
|
||||
// Ignore missing I18n directories
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -47,6 +47,31 @@ class TemplateHelper
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a template definition is the current active template
|
||||
*
|
||||
* @param TemplateDefinition $tplDefinition
|
||||
* @return bool true is the given template is the active template
|
||||
*/
|
||||
public function isActive(TemplateDefinition $tplDefinition) {
|
||||
|
||||
switch ($tplDefinition->getType()) {
|
||||
case TemplateDefinition::FRONT_OFFICE:
|
||||
$tplVar = 'active-front-template';
|
||||
break;
|
||||
case TemplateDefinition::BACK_OFFICE:
|
||||
$tplVar = 'active-front-template';
|
||||
break;
|
||||
case TemplateDefinition::PDF:
|
||||
$tplVar = 'active-front-template';
|
||||
break;
|
||||
case TemplateDefinition::EMAIL:
|
||||
$tplVar = 'active-front-template';
|
||||
break;
|
||||
}
|
||||
|
||||
return $tplDefinition->getName() == ConfigQuery::read($tplVar, 'default');
|
||||
}
|
||||
/**
|
||||
* @return TemplateDefinition
|
||||
*/
|
||||
|
||||
@@ -6,6 +6,7 @@ return array(
|
||||
'© Thelia 2013' => '© Thelia 2013',
|
||||
'(edit)' => '(modification)',
|
||||
'<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Check the list</a> of ISO 639-1 codes' => '<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Consulter la liste</a> des codes ISO 639-1',
|
||||
'<a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes" target="_other">Check the list</a> of ISO 639-1 codes' => '<a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes" target="_other">Liste des codes ISO 639-1</a>',
|
||||
'<span id="number_of_generated_combinations">0</span> combinations' => '<span id="number_of_generated_combinations">0</span> combinaisons',
|
||||
'<strong>Cannot translate all fields.</strong> According to your PHP configuration, forms cannot contains more than %current_max_input_vars input fields, but at least %required_max_input_vars are required. Please change the value of max_input_vars in your PHP configuration of change the translation file by hand.' => '<strong>Limitation système bloquante !</strong> Votre configuration PHP limite le nombre de champs d\'une forme HTML à %current_max_input_vars champs. Au moins %required_max_input_vars champs sont nécessaires pour effectuer les traductions. Merci de modifier en conséquence la variable max_input_vars de votre configuration PHP. Vous pouvez aussi modifier les fichiers de traduction à la main.',
|
||||
'<strong>Congratulations</strong>, all text is now translated !' => '<strong>Félicitations</strong>, tous les textes ont été traduits !',
|
||||
@@ -49,7 +50,7 @@ return array(
|
||||
'Administration logs' => 'Journal des logs',
|
||||
'Administration profiles' => 'Profils d\'administration',
|
||||
'Administrators' => 'Administrateurs',
|
||||
'Afficher ce profil' => 'View this profile',
|
||||
'Afficher ce profil' => 'Afficher ce profil',
|
||||
'All countries are assigned to a shipping zone.' => 'Tous les pays sont assignés à une zone de livraison.',
|
||||
'All orders' => 'Toutes les commandes',
|
||||
'Alpha code 2' => 'Code alpha 2',
|
||||
@@ -74,6 +75,7 @@ return array(
|
||||
'Average cart' => 'Panier moyen',
|
||||
'Back' => 'Retour',
|
||||
'Back-office home' => 'Accueil administration',
|
||||
'Back-office template you want to translate' => 'Template back-office à traduire',
|
||||
'Back-office templates' => 'templates Back-office',
|
||||
'Back-office users' => 'Utilisateur du B.O',
|
||||
'Browse files' => 'Parcourir les fichiers',
|
||||
@@ -148,7 +150,7 @@ return array(
|
||||
'Country title' => 'Titre du pays',
|
||||
'Coupon' => 'Code promo',
|
||||
'Coupon code' => 'Code promo',
|
||||
'Coupons' => 'Codes Promo',
|
||||
'Coupons' => 'Codes promo',
|
||||
'Coupons : ' => 'Codes promo : ',
|
||||
'Create' => 'Créer',
|
||||
'Create a customer address' => 'Créer une adresse',
|
||||
@@ -324,6 +326,7 @@ return array(
|
||||
'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 template you want to translate' => 'Template e-mail à traduire',
|
||||
'E-mail templates' => 'templates 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) au prix du produit.',
|
||||
@@ -395,7 +398,6 @@ return array(
|
||||
'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"' => 'Modification du document "%name"',
|
||||
'Editing feature "%name"' => 'En cours de modification de la caractéristique "%name"',
|
||||
'Editing image "%name"' => 'Modification de l\'image "%name"',
|
||||
@@ -478,11 +480,16 @@ return array(
|
||||
'French 19.6% VAT is a tax which add a 19.6% tax to the product price.' => 'La TVA française de 20% est une taxe qui ajoute 20% 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 20% avec écotaxe est l\'application de l\'écotaxe (sur le prix du produit) puis l\'application de la taxe de20% (sur le prix du produit + le montant écotaxe).',
|
||||
'From' => 'De',
|
||||
'Front-office template you want to translate' => 'Template front-office à traduire',
|
||||
'Front-office templates' => 'templates 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',
|
||||
'Go to first page' => 'Aller à la première page',
|
||||
'Go to last page' => 'Aller à la dernière page',
|
||||
'Go to next page' => 'Aller à la page suivante',
|
||||
'Go to previous page' => 'Aller à la page précédente',
|
||||
'H:i:s' => 'H:i:s',
|
||||
'HTML version of this message' => 'Version HTML du message',
|
||||
'Home' => 'Accueil',
|
||||
@@ -516,6 +523,7 @@ return array(
|
||||
'Is enabled' => 'Est activé',
|
||||
'Is removing postage' => 'Offre les frais de port',
|
||||
'Is unlimited' => 'Est illimité',
|
||||
'Items to translate' => 'Elément à traduire',
|
||||
'Keep the most important part of your description in the first 150-160 characters.' => 'Votre description ne devrait pas dépasser 150 à 160 caractères',
|
||||
'Kg' => 'Kg',
|
||||
'Label' => 'Libellé',
|
||||
@@ -557,9 +565,13 @@ return array(
|
||||
'Messages which have a level greater or equal to the selected level will be added to the log destinations. ' => 'Les messages avec un niveau d\'erreur supérieur ou égal à celui sélectionné seront rajoutés dans les logs',
|
||||
'Module' => 'Module',
|
||||
'Module access rights' => 'Droits d\'accès pour les modules',
|
||||
'Module component' => 'Composant du module',
|
||||
'Module created on %date_create. Last modification: %date_change' => 'Module crée le %date_create. Dernière modification le %date_change',
|
||||
'Module you want to translate' => 'Module à traduire',
|
||||
'Modules' => 'Modules',
|
||||
'More information about ISO 4217' => 'Plus d\'information à propos de l\'ISO 4217',
|
||||
'More pages after' => 'Pages suivantes',
|
||||
'More pages before' => 'Pages précédentes',
|
||||
'NONE' => 'AUCUN',
|
||||
'Name' => 'Nom',
|
||||
'New' => 'Nouveau',
|
||||
@@ -586,8 +598,8 @@ return array(
|
||||
'Online' => 'En ligne',
|
||||
'Online products' => 'Produits en ligne',
|
||||
'Oops! An Error Occurred' => 'Oops ! Une erreur est survenue',
|
||||
'Order #' => 'Commande #',
|
||||
'Order %ref' => 'Commande %ref',
|
||||
'Order %ref - ID %id' => 'Commande %ref - ID %id ',
|
||||
'Order details' => 'Détail de la commande',
|
||||
'Order n°' => 'Commande n°',
|
||||
'Order status:' => 'Statut de la commande : ',
|
||||
'Ordered products' => 'Produits commandés',
|
||||
@@ -597,6 +609,7 @@ return array(
|
||||
'Originating function name ' => 'Originating function name ',
|
||||
'Other addresses' => 'Autres adresses',
|
||||
'Overall sales' => 'Total des ventes',
|
||||
'PDF template you want to translate' => 'Template PDF à traduire',
|
||||
'PDF templates' => 'templates PDF',
|
||||
'PDF | Invoice' => 'Facture PDF',
|
||||
'PDF | Purchase order' => 'Bon de commande PDF',
|
||||
@@ -620,6 +633,7 @@ return array(
|
||||
'Please select the E-mail template to translate' => 'Sélectionnez le template de mail à traduire',
|
||||
'Please select the F.O. template to translate' => 'Sélectionnez le template front-office à traduire',
|
||||
'Please select the PDF template to translate' => 'Sélectionnez le template PDF à traduire',
|
||||
'Please select the module component' => 'Choisissez un composant du module',
|
||||
'Please select the module to translate' => 'Sélectionnez le module à traduire',
|
||||
'Please wait, loading' => 'Chargement, veuillez patienter',
|
||||
'Port' => 'Port',
|
||||
@@ -665,6 +679,7 @@ return array(
|
||||
'Promotion' => 'Promo',
|
||||
'Published by OpenStudio' => 'Développé par OpenStudio',
|
||||
'Purpose' => 'Objet',
|
||||
'Quantity' => 'Quantité',
|
||||
'Quickly create combinations using the combination builder' => 'Créer rapidement une combinaison via le générateur de combinaison',
|
||||
'Rate' => 'Taux',
|
||||
'Rate from Euro' => 'Taux à partir de l\'Euro',
|
||||
@@ -729,12 +744,6 @@ return array(
|
||||
'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 de mail à traduire',
|
||||
'Select the PDF template you want to translate' => 'Sélectionnez le template PDF à traduire',
|
||||
'Select the back-office template you want to translate' => 'Sélectionnez le template back-office à traduire',
|
||||
'Select the front-office template you want to translate' => 'Sélectionnez le template front-office à traduire',
|
||||
'Select the module you want to translate' => 'Sélectionnez le module à traduire',
|
||||
'Select which items you want to translate' => 'Sélectionnez l\'élément à traduire',
|
||||
'Send a mail to this customer' => 'Contacter ce client par mail',
|
||||
'Send files' => 'Envoyer des fichiers',
|
||||
'Sequential number of log line' => 'Sequential number of log line',
|
||||
@@ -851,6 +860,7 @@ return array(
|
||||
'This product contains no contents' => 'Ce produit n\'a aucun contenu associé',
|
||||
'This product doesn\'t belong to any additional category.' => 'Ce produit n\'est associé à aucune rubrique supplémentaire',
|
||||
'This product doesn\'t belong to any additional folder.' => 'Ce produit n\'appartient à aucun dossier addoitionnel',
|
||||
'This product has no combination. The default price is used. <a data-toggle="modal" href="%url">Click here to create a new combination</a>.' => 'Ce produit n\'a pas de combinaison. Le prix par défaut est utilisé. <a data-toggle="modal" href="%url">Créer une nouvelle combinaison</a>. ',
|
||||
'This product template does not contains any features' => 'Ce gabarit de produit ne comporte aucune caractéristique',
|
||||
'This shipping zone does not contains any country.' => 'Cette zone de livraison ne comporte aucun pays',
|
||||
'This template contains no attributes' => 'Ce template n\'a pas de déclinaison',
|
||||
@@ -866,6 +876,7 @@ return array(
|
||||
'To create a new content, select an existing folder, or create a new one.' => 'Pour créer un nouveau contenu, sélectionnez un dossier existant ou créez en un nouveau',
|
||||
'To create a new product, select an existing category, or create a new one.' => 'Pour créer un nouveau produit, veuillez sélectionner une rubrique existante ou en créer une nouvelle',
|
||||
'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"',
|
||||
'To use features or attributes on this product, please select a product template. You can define product templates in the <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">configuration section</a> of the administration.' => 'Pour utiliser les déclinaisons et les caractéristiques sur ce produit, choisissez un tempplate produit. Vous pouvez gérer les templates de produit dans <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">la section configuration</a> de l\'administration.',
|
||||
'Today' => 'Aujourd\'hui',
|
||||
'Top level' => 'Niveau 1',
|
||||
'Top level Contents' => 'Contenus de niveau 1',
|
||||
@@ -908,7 +919,7 @@ return array(
|
||||
'Variable value' => 'Valeur de la variable',
|
||||
'Version %ver' => 'Version %ver',
|
||||
'View' => 'Voir',
|
||||
'View only missing translations' => 'N\'afficher que les traductions manquantes',
|
||||
'View only missing translations.' => 'Afficher uniquement les traductions manquantes',
|
||||
'View shop' => 'Voir la boutique',
|
||||
'View site' => 'Voir le site',
|
||||
'Visibility' => 'Visibilité',
|
||||
@@ -924,11 +935,16 @@ return array(
|
||||
'You can attach here some content to this category' => 'Vous pouvez lier ici des contenus à cette rubrique',
|
||||
'You can attach here some content to this product' => 'Vous pouvez associer des contenus avec ce produit',
|
||||
'You can attach this product to more categories in the details tab.' => 'Vous pouvez lier ce produit à plusieurs rubriques dans l\'onglet détail.',
|
||||
'You can change attributes and their positions in <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">the attributes configuration page</a>.' => 'Vous pouvez modifier les déclinaisons et leur position dans <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">la gestion des déclinaisons</a>.',
|
||||
'You can change feature and their positions in <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">the features configuration page</a>.' => 'Vous pouvez modifier les caractéristiques et leur position dans <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">la gestion des caractéristiques</a>.',
|
||||
'You can change template attributes and their positions in <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">the template configuration page</a>.' => 'Vous pouvez modifier les déclinaisons du template et leur position dans <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">la configuration des déclinaisons</a>. ',
|
||||
'You can change templates features and their positions in <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">the template configuration page</a>.' => 'Vous pouvez modifier les caractéristiques du template et leur position dans <a href=\"%tpl_mgmt_url\" target=\"tpl_window\">la configuration des templates</a>.',
|
||||
'You can change the default category (%title) in the "General" tab.' => 'Vous pouvez changer 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',
|
||||
'You don\'t need to use commas or other punctuations.' => 'Vous n\'avez pas besoin d\'utiliser de virgules ou d\'autres signes de ponctuation',
|
||||
'You may also quickly create combinations from products attributes using the <a href="%url" data-toggle="modal">Combination Builder</a>.' => 'Vous pouvez aussi créer rapidement une série de combinaisons avec <a href="%url" data-toggle="modal">le gestionnaire de combinaisons</a>.',
|
||||
'Your current IP address is %ip' => 'Votre adresse IP est %ip',
|
||||
'Zip code' => 'Code postal',
|
||||
'Zone name' => 'Nom de la zone',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{* Set the default translation domain, that will be used by {intl} when the 'd' parameter is not set *}
|
||||
{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *}
|
||||
{default_translation_domain domain='bo.default'}
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{* Set the default translation domain, that will be used by {intl} when the 'd' parameter is not set *}
|
||||
{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *}
|
||||
{default_translation_domain domain='bo.default'}
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{* this template is loaded via Ajax in the login page, to prevent login page slowdown *}
|
||||
|
||||
{* Set the default translation domain, that will be used by {intl} when the 'd' parameter is not set *}
|
||||
{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *}
|
||||
{default_translation_domain domain='bo.default'}
|
||||
|
||||
<div class="panel-group" id="accordion">
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
<select id="item_name" required="required" name="item_name" class="submit-on-change form-control">
|
||||
<option value="">{intl l='Please select the module to translate'}</option>
|
||||
{loop type="module" name="translate-module" active="1" backend_context=1}
|
||||
{loop type="module" name="translate-module" backend_context=1 order="alpha"}
|
||||
<option value="{$ID}" {if $item_name == $ID}selected="selected"{/if}>{$TITLE}</option>
|
||||
{/loop}
|
||||
</select>
|
||||
@@ -128,7 +128,10 @@
|
||||
<select id="module_part" required="required" name="module_part" class="submit-on-change form-control">
|
||||
<option value="">{intl l='Please select the module component'}</option>
|
||||
<option value="core" {if $module_part == 'core'}selected="selected"{/if}>Core files</option>
|
||||
<option value="admin-includes" {if $module_part == 'admin-includes'}selected="selected"{/if}>Administration includes template</option>
|
||||
|
||||
{if $has_admin_includes}
|
||||
<option value="admin-includes" {if $module_part == 'admin-includes'}selected="selected"{/if}>Administration includes template</option>
|
||||
{/if}
|
||||
|
||||
{if $back_office_templates != ''}
|
||||
{foreach explode(',', $back_office_templates) as $template}
|
||||
|
||||
Reference in New Issue
Block a user