diff --git a/src/module_vmap/module/lang/lang-en.json b/src/module_vmap/module/lang/lang-en.json
index 99967b4b46e00964380e3c6acbe6615545e68b86..8b71ffd1d8e56ee54a7c990922b272b57d3d8103 100644
--- a/src/module_vmap/module/lang/lang-en.json
+++ b/src/module_vmap/module/lang/lang-en.json
@@ -473,15 +473,15 @@
     "ERROR_LAYER_ASSOCIATED": "Une ou plusieurs couches sont associées.",
     "": "",
     "VMAP_CANCEL": "Cancel",
-    "VMAP_PREVIOUS": "Précédent",
-    "VMAP_NEXT": "Suivant",
-    "VMAP_FINISH": "Terminer",
-    "VMAP_LOCATE": "Localiser",
+    "VMAP_PREVIOUS": "Previous",
+    "VMAP_NEXT": "Next",
+    "VMAP_FINISH": "Finish",
+    "VMAP_LOCATE": "Locate",
     "VMAP_LOCATION": "Location",
-    "VMAP_ADD": "Ajouter",
+    "VMAP_ADD": "Add",
     "VMAP_MENU": "Menu",
-    "VMAP_CHOOSE": "Choisir",
-    "VMAP_VALIDATE": "Valider",
+    "VMAP_CHOOSE": "Choose",
+    "VMAP_VALIDATE": "Validate",
     "VMAP_FILTER": "Filter",
     "VMAP_POINT": "Point",
     "VMAP_MULTI_POINT": "Multi point",
@@ -495,6 +495,7 @@
     "VMAP_LEGEND": "Legend",
     "VMAP_LAYER": "Layer",
     "VMAP_LAYERS": "Layers",
+    "VMAP_LAYER_NAME": "Layer name",
     "VMAP_SHEET": "Sheet",
     "VMAP_SHEETS": "Sheets",
     "VMAP_MAP": "Map",
@@ -533,6 +534,27 @@
     "VMAP_WITH_RESULT": "With result",
     "VMAP_WITHOUT_RESULT": "Without result",
     "VMAP_NO_RESULTS_AVAILABLE": "No result available",
+    "VMAP_SERVICE": "Service",
+    "VMAP_FIND": "Find",
+    "VMAP_FILE": "File",
+    "VMAP_USE": "Use",
+    "VMAP_THEME": "Theme",
+    "VMAP_CENTER": "Center",
+    "VMAP_REPROJECT": "Reproject",
+    "VMAP_CREATE_AND_USE": "Create and use",
+    "VMAP_ALL": "All",
+    "VMAP_ZOOM": "Zoom",
+    "VMAP_EXTENT": "Extent",
+    "VMAP_DOWNLOAD": "Download",
+    "VMAP_NAME": "Name",
+    "VMAP_URL": "URL",
+    "VMAP_SERVICE_NAME": "Service name",
+    "VMAP_SERVICE_URL": "Service URL",
+    "VMAP_TITLE": "Title",
+    "VMAP_VERSION": "Version",
+    "VMAP_GET_CONTENT": "Get content",
+    "VMAP_MATRIX": "Matrix",
+    "VMAP_FORMAT": "Format",
     "": "",
     "VMAP_LAYERTREE_DATASETS": "Datasets",
     "VMAP_LAYERTREE_MAP_1": "Map 1",
@@ -561,7 +583,7 @@
     "VMAP_MAP_CANCEL_OPERATION": "Cancel operation",
     "": "",
     "VMAP_MAPS": "MAPS",
-    "VMAP_MAPS_MANAGEMENT": "MAPS MANAGEMENT",
+    "VMAP_MAPS_MANAGEMENT": "MAP MANAGER",
     "": "",
     "VMAP_ADVANCEDSELECT_TABLE": "Resulting table",
     "VMAP_ADVANCEDSELECT_GRAPHIC_SELECTION": "Graphic selection",
@@ -604,7 +626,6 @@
     "VMAP_INSERT_SNAPPING_MIN_SCALE": "Minimum scale reached",
     "VMAP_INSERT_RESET_DEFAULT_PARAMS": "Reset default params",
     "": "",
-    "VMAP_LOCATION_SEE_ON_MAP": "See on map",
     "VMAP_LOCATION_NEW_SCALE": "New scale",
     "VMAP_LOCATION_NEW_SCALE_DEF": "Set a nez scale an click on \"Add\"",
     "VMAP_LOCATION_SEARCH_RESULTS": "Search results",
@@ -628,5 +649,51 @@
     "": "",
     "VMAP_SELECTION_MULTIPLE_SELECTION": "Multiple selection",
     "VMAP_SELECTION_VALIDATE_GEOM": "Validate geometry",
+    "": "",
+    "VMAP_MAPMODAL_BING_ADD_LAYER": "Add Bing Maps layer",
+    "": "",
+    "VMAP_MAPMODAL_GEOM_LOAD_FILE": "Load local file",
+    "VMAP_MAPMODAL_GEOM_SERVICE_NAME": "Service name",
+    "VMAP_MAPMODAL_GEOM_LAYER_NAME": "Layer name",
+    "VMAP_MAPMODAL_GEOM_FILE_OR_URL": "File or URL",
+    "VMAP_MAPMODAL_GEOM_DRAG_FILE_DESCR": "Or simply drag file here",
+    "VMAP_MAPMODAL_GEOM_DRAG_FILE_HERE": "Drag file here",
+    "VMAP_MAPMODAL_GEOM_FORMATS": "Supported formats",
+    "": "",
+    "VMAP_MAPMODAL_MAPLIST_TITLE": "Avaliable maps list",
+    "VMAP_MAPMODAL_MAPLIST_DRAG_FILE_HERE": "Drag file here",
+    "VMAP_MAPMODAL_MAPLIST_NEW_MAP": "New map",
+    "VMAP_MAPMODAL_MAPLIST_NEW_EMPTY_MAP": "New map (empty)",
+    "VMAP_MAPMODAL_MAPLIST_USE_THIS_MAP": "Use this map",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL": "Zoom level",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MAX": "Maximum zoom level",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MIM": "Minimum zoom level",
+    "": "",
+    "VMAP_MAPMODAL_TITLE": "Maps manager",
+    "VMAP_MAPMODAL_MY_MAP": "My map",
+    "VMAP_MAPMODAL_CHANGE_MAP": "Change map",
+    "VMAP_MAPMODAL_WMS_SERVICE": "WMS",
+    "VMAP_MAPMODAL_WMTS_SERVICE": "WMTS",
+    "VMAP_MAPMODAL_XYZ_SERVICE": "XYZ",
+    "VMAP_MAPMODAL_LOCAL_FILE": "Local file",
+    "VMAP_MAPMODAL_OSM": "Open Street Map",
+    "VMAP_MAPMODAL_BING": "Bing Maps",
+    "VMAP_MAPMODAL_ADD_LAYERS": "Add layers",
+    "": "",
+    "VMAP_MYMAP_TITLE": "Running map",
+    "VMAP_MYMAP_DELETE_SHEET": "Remove sheet from map",
+    "": "",
+    "VMAP_MAPMODAL_OSM_TITLE": "Add OSM layer",
+    "": "",
+    "VMAP_MAPMODAL_WMS_TITLE": "Add WMS layer",
+    "VMAP_MAPMODAL_WMS_ID": "Login (not required)",
+    "VMAP_MAPMODAL_WMS_PASS": "Password (not required)",
+    "": "",
+    "VMAP_MAPMODAL_WMTS_TITLE": "Add WMTS layer",
+    "": "",
+    "VMAP_MAPMODAL_XYZ_TITLE": "Add XYZ layer",
+    "VMAP_MAPMODAL_XYZ_DESCR_1": "Tiled services defined by a XYZ pyramid ex: http://tile.stamen.com/toner/{z}/{x}/{y}.png",
+    "VMAP_MAPMODAL_XYZ_DESCR_2": "By default it follows the most used model where X(0) and Y(0) are on top left",
+    "VMAP_MAPMODAL_XYZ_DESCR_3": "The TMS grids use this coords on bottom left, so to use them put {-y} on the URL",
     "": ""
 }
diff --git a/src/module_vmap/module/lang/lang-fr.json b/src/module_vmap/module/lang/lang-fr.json
index a95f03adaac724eadca7d8da88ec5dda6c408a8f..4cbec1bf999fe0fb1fa2f24f26a35b9d859eac1c 100644
--- a/src/module_vmap/module/lang/lang-fr.json
+++ b/src/module_vmap/module/lang/lang-fr.json
@@ -496,6 +496,7 @@
     "VMAP_LEGEND": "Légende",
     "VMAP_LAYER": "Couche",
     "VMAP_LAYERS": "Couches",
+    "VMAP_LAYER_NAME": "Nom de la couche",
     "VMAP_SHEET": "Calque",
     "VMAP_SHEETS": "Calques",
     "VMAP_MAP": "Carte",
@@ -534,6 +535,27 @@
     "VMAP_WITH_RESULT": "Avec résultat",
     "VMAP_WITHOUT_RESULT": "Sans résultat",
     "VMAP_NO_RESULTS_AVAILABLE": "Aucun résultat disponible",
+    "VMAP_SERVICE": "Service",
+    "VMAP_FIND": "Chercher",
+    "VMAP_FILE": "Fichier",
+    "VMAP_USE": "Utiliser",
+    "VMAP_THEME": "Thème",
+    "VMAP_CENTER": "Centre",
+    "VMAP_REPROJECT": "Reprojeter",
+    "VMAP_CREATE_AND_USE": "Créér et utiliser",
+    "VMAP_ALL": "Tous",
+    "VMAP_ZOOM": "Zoom",
+    "VMAP_EXTENT": "Étendue",
+    "VMAP_DOWNLOAD": "Télécharger",
+    "VMAP_NAME": "Nom",
+    "VMAP_URL": "URL",
+    "VMAP_SERVICE_NAME": "Nom du service",
+    "VMAP_SERVICE_URL": "URL du service",
+    "VMAP_TITLE": "Titre",
+    "VMAP_VERSION": "Version",
+    "VMAP_GET_CONTENT": "Voir le contenu",
+    "VMAP_MATRIX": "Matrice",
+    "VMAP_FORMAT": "Format",
     "": "",
     "VMAP_LAYERTREE_DATASETS": "Jeux de données",
     "VMAP_LAYERTREE_MAP_1": "Carte 1",
@@ -543,7 +565,6 @@
     "VMAP_LAYERTREE_TITLE_VISIBLE_LAYER": "Définit si la couche est visible",
     "VMAP_LAYERTREE_TITLE_VISIBLE_ALL_LAYER": "Définit si les couches sont visibles",
     "VMAP_LAYERTREE_TITLE_WMS_QUERYABLE_SHEET": "Definit si le calque est interrogeable par requête WMS",
-    "VMAP_LAYERTREE_TITLE_WMS_QUERYABLE_LAYER": "Definit si la couche est interrogeable par requête WMS",
     "VMAP_LAYERTREE_FILTER": "Filtre",
     "VMAP_LAYERTREE_LAYER_FILTER": "Filtre de la couche",
     "VMAP_LAYERTREE_TRANSPARENCY": "Transparence",
@@ -628,5 +649,51 @@
     "": "",
     "VMAP_SELECTION_MULTIPLE_SELECTION": "Sélection multiple",
     "VMAP_SELECTION_VALIDATE_GEOM": "Valider géométrie",
+    "": "",
+    "VMAP_MAPMODAL_BING_ADD_LAYER": "Ajouter une couche Bing Maps",
+    "": "",
+    "VMAP_MAPMODAL_GEOM_LOAD_FILE": "Charger une fichier local",
+    "VMAP_MAPMODAL_GEOM_SERVICE_NAME": "Nom du service",
+    "VMAP_MAPMODAL_GEOM_LAYER_NAME": "Nom de la couche",
+    "VMAP_MAPMODAL_GEOM_FILE_OR_URL": "Fichier ou URL",
+    "VMAP_MAPMODAL_GEOM_DRAG_FILE_DESCR": "Ou simplement déplacer le fichier ci-dessous",
+    "VMAP_MAPMODAL_GEOM_DRAG_FILE_HERE": "Déplacer le fichier ici",
+    "VMAP_MAPMODAL_GEOM_FORMATS": "Formats supportés",
+    "": "",
+    "VMAP_MAPMODAL_MAPLIST_TITLE": "Liste des cartes utilisables",
+    "VMAP_MAPMODAL_MAPLIST_DRAG_FILE_HERE": "Déplacer le fichier ici",
+    "VMAP_MAPMODAL_MAPLIST_NEW_MAP": "Nouvelle carte",
+    "VMAP_MAPMODAL_MAPLIST_NEW_EMPTY_MAP": "Nouvelle carte (vide)",
+    "VMAP_MAPMODAL_MAPLIST_USE_THIS_MAP": "Utiliser cette carte",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL": "Niveau de zoom",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MAX": "Niveau de zoom maximum",
+    "VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MIM": "Niveau de zoom minimum",
+    "": "",
+    "VMAP_MAPMODAL_TITLE": "Gestion des cartes",
+    "VMAP_MAPMODAL_MY_MAP": "Ma carte",
+    "VMAP_MAPMODAL_CHANGE_MAP": "Changer de carte",
+    "VMAP_MAPMODAL_WMS_SERVICE": "Service WMS",
+    "VMAP_MAPMODAL_WMTS_SERVICE": "Service WMTS",
+    "VMAP_MAPMODAL_XYZ_SERVICE": "Service XYZ",
+    "VMAP_MAPMODAL_LOCAL_FILE": "Fichier local",
+    "VMAP_MAPMODAL_OSM": "Open Street Map",
+    "VMAP_MAPMODAL_BING": "Bing Maps",
+    "VMAP_MAPMODAL_ADD_LAYERS": "Ajout de couches",
+    "": "",
+    "VMAP_MYMAP_TITLE": "Carte en cours",
+    "VMAP_MYMAP_DELETE_SHEET": "Supprime le calque de la carte",
+    "": "",
+    "VMAP_MAPMODAL_OSM_TITLE": "Ajouter une couche OSM",
+    "": "",
+    "VMAP_MAPMODAL_WMS_TITLE": "Ajouter une couche WMS",
+    "VMAP_MAPMODAL_WMS_ID": "Identifiant (optionnel)",
+    "VMAP_MAPMODAL_WMS_PASS": "Mot de passe (optionnel)",
+    "": "",
+    "VMAP_MAPMODAL_WMTS_TITLE": "Ajouter une couche WMTS",
+    "": "",
+    "VMAP_MAPMODAL_XYZ_TITLE": "Ajouter une couche XYZ",
+    "VMAP_MAPMODAL_XYZ_DESCR_1": "Services tuilés définis par XYZ dans l'URL exemple: http://tile.stamen.com/toner/{z}/{x}/{y}.png.",
+    "VMAP_MAPMODAL_XYZ_DESCR_2": "Par défaut, cela suit le modèle le plus utilisé où X(0) et Y(0) sont en haut à gauche.",
+    "VMAP_MAPMODAL_XYZ_DESCR_3": "Les grilles de type TMS où ces coordonnées se trouvent en bas à gauche peuvent être utilisées en utilisant {-y} dans l'URL",
     "": ""
 }
diff --git a/src/module_vmap/module/template/layers/mapmodal/bingsuggestions.html b/src/module_vmap/module/template/layers/mapmodal/bingsuggestions.html
index 73c103c1635603357940220ab7f594c0ff7134aa..65759f611da95eedd2e350ac7b90348ec7f821eb 100755
--- a/src/module_vmap/module/template/layers/mapmodal/bingsuggestions.html
+++ b/src/module_vmap/module/template/layers/mapmodal/bingsuggestions.html
@@ -1,19 +1,18 @@
 <!-- Liste des couches utilisables -->
 
-
-<h3>Ajouter une couche Bing Maps: </h3>
+<h3>{{ 'VMAP_MAPMODAL_BING_ADD_LAYER' | translate }}: </h3>
 <hr>
 
 <div>
     <div class="row">
         <div class="col-xs-3">
-            <b>Couche:</b>
+            <b>{{ 'VMAP_LAYER' | translate }}</b>
         </div>
         <div class="col-xs-4">
-            <b>Clé Bing:</b>
+            <b>{{ 'FORM_KEY_VMAP_MAP_SERVICE' | translate }}</b>
         </div>
         <div class="col-xs-3">
-            <b>Langue:</b>
+            <b>{{ 'FORM_LANG_VMAP_MAP_SERVICE' | translate }}</b>
         </div>
         <div class="col-xs-2">
         </div>
@@ -32,7 +31,7 @@
             </select>
         </div>
         <div class="col-xs-2">
-            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">Ajouter</button>
+            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
 </div>
@@ -43,8 +42,8 @@
 <div ng-repeat="node in ctrl.catalog.services.bing">
     <div class="row">
         <div class="col-xs-3" ng-if="(node.thumbnail | getType) == 'string'">
-            <img src="{{node.thumbnail}}" 
-                 class="img-responsive pointer opacity-hover" 
+            <img src="{{node.thumbnail}}"
+                 class="img-responsive pointer opacity-hover"
                  ng-click="ctrl.addLayer(node)">
         </div>
         <div class="col-xs-9">
@@ -65,9 +64,9 @@
             <b>key</b>: <i>{{node.key}}</i>
         </div>
         <div class="col-xs-2">
-            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">Ajouter</button>
+            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
     <hr>
 </div>
-<button id="btn-reload-bing" style="display: none" ng-click="ctrl.reload()">Reload map</button>
\ No newline at end of file
+<button id="btn-reload-bing" style="display: none" ng-click="ctrl.reload()">Reload map</button>
diff --git a/src/module_vmap/module/template/layers/mapmodal/loadgeometry.html b/src/module_vmap/module/template/layers/mapmodal/loadgeometry.html
index 91a3b423bf39239ba40af70babc47f9d6613b2ab..25b7db296313bf615ed98f03f182d9d1c3beb61c 100755
--- a/src/module_vmap/module/template/layers/mapmodal/loadgeometry.html
+++ b/src/module_vmap/module/template/layers/mapmodal/loadgeometry.html
@@ -1,28 +1,28 @@
 <!-- Liste des cartes utilisables -->
-<h3>Ajouter une géométrie: </h3>
+<h3>{{ 'VMAP_MAPMODAL_GEOM_LOAD_FILE' | translate }}: </h3>
 <hr>
 
 
 <div>
     <div class="row">
         <div class="col-xs-3">
-            <b>Service</b>
-            <input type="text" ng-model="sServiceName" class="form-control" placeholder="Nom du service">
+            <b>{{ 'VMAP_SERVICE' | translate }}</b>
+            <input type="text" ng-model="sServiceName" class="form-control" placeholder="{{ 'VMAP_MAPMODAL_GEOM_SERVICE_NAME' | translate }}">
         </div>
         <div class="col-xs-3">
-            <b>Couche</b>
-            <input type="text" ng-model="sLayerTitle" class="form-control" placeholder="Nom de la couche">
+            <b>{{ 'VMAP_LAYER' | translate }}</b>
+            <input type="text" ng-model="sLayerTitle" class="form-control" placeholder="{{ 'VMAP_MAPMODAL_GEOM_LAYER_NAME' | translate }}">
         </div>
     </div>
     <br>
     <div class="row">
         <div class="col-xs-12">
-            <b>Fichier ou URL</b>
+            <b>{{ 'VMAP_MAPMODAL_GEOM_FILE_OR_URL' | translate }}</b>
             <div class="input-group">
-                <input type="text" id="upload-geometry-file-info" class="form-control" ng-change="bIsUrl = true" ng-model="sFileName" placeholder="http://www.ma-carte.com/get-geometry.php">
+                <input type="text" id="upload-geometry-file-info" class="form-control" ng-change="bIsUrl = true" ng-model="sFileName" placeholder="http://www.maps.com/get-geometry.php">
                 <span class="input-group-btn">
-                    <span class="btn btn-success btn-file">                       
-                        Chercher&hellip; <input type="file" id="browse-geometry-button"/>
+                    <span class="btn btn-success btn-file">
+                        {{ 'VMAP_FIND' | translate }}&hellip; <input type="file" id="browse-geometry-button"/>
                     </span>
                 </span>
             </div>
@@ -31,16 +31,16 @@
     <br>
     <div class="row">
         <div class="col-xs-12">
-            <b>Ou vous pouvez simplement déplacer le fichier ci-dessous</b>
-            <div class="upload-drop-zone" id="upload-geometry-file-drop-zone">Déplacer le fichier ici</div>
-            <div class="right"><i>Formats supportés: GPX, GeoJSON, IGC, KML, TopoJSON</i></div><br>
+            <b>{{ 'VMAP_MAPMODAL_GEOM_DRAG_FILE_DESCR' | translate }}</b>
+            <div class="upload-drop-zone" id="upload-geometry-file-drop-zone">{{ 'VMAP_MAPMODAL_GEOM_DRAG_FILE_HERE' | translate }}</div>
+            <div class="right"><i>{{ 'VMAP_MAPMODAL_GEOM_FORMATS' | translate }}: GPX, GeoJSON, IGC, KML, TopoJSON</i></div><br>
         </div>
     </div>
     <br>
     <div class="row">
         <div class="col-xs-12">
-            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">Ajouter</button>
+            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
 </div>
-<button id="btn-reload-geometry" style="display: none" ng-click="ctrl.reload()"></button>
\ No newline at end of file
+<button id="btn-reload-geometry" style="display: none" ng-click="ctrl.reload()"></button>
diff --git a/src/module_vmap/module/template/layers/mapmodal/maplist.html b/src/module_vmap/module/template/layers/mapmodal/maplist.html
index f484cc331c25d69cb5ccbb75ce05221b1ef92c12..754ce286d3715c88d7b06f0f03fe8ad5dbe3e0ef 100644
--- a/src/module_vmap/module/template/layers/mapmodal/maplist.html
+++ b/src/module_vmap/module/template/layers/mapmodal/maplist.html
@@ -1,12 +1,11 @@
 <!-- Liste des cartes utilisables -->
 
-
-<h3>Liste des cartes utilisables: </h3>
+<h3>{{ 'VMAP_MAPMODAL_MAPLIST_TITLE' | translate }}: </h3>
 <hr>
 <div>
     <div class="row">
         <div class="col-md-10">
-            <b>Fichier:</b>
+            <b>{{ 'VMAP_FILE' | translate }}:</b>
         </div>
         <div class="col-md-2">
         </div>
@@ -17,19 +16,19 @@
                 <input type="text" id="upload-file-info" class="form-control" ng-model="ctrl.newMapUrl" placeholder="http://www.ma-carte.com/get-map.php">
                 <span class="input-group-btn">
                     <span class="btn btn-success btn-file">
-                        Chercher&hellip; <input type="file" id="browse-map-button" onchange='oVmap.getMapManager().getMapModalTool().getMapListTool().changeFilePath(this)'>
+                        {{ 'VMAP_FIND' | translate }}&hellip; <input type="file" id="browse-map-button" onchange='oVmap.getMapManager().getMapModalTool().getMapListTool().changeFilePath(this)'>
                     </span>
                 </span>
             </div>
         </div>
         <div class="col-md-2">
             <!-- l'attribut "url" est utilisé si on rentre le path à la main, si on rentre par le bouton "browse", alors on utilisera le contennu de browse-map-button -->
-            <button type="button" id="upload-file-add-button" url="{{ctrl.newMapUrl}}" file-container="" class="btn btn-success right" onclick="oVmap.getMapManager().loadMapFromFile(this)">Utiliser</button>
+            <button type="button" id="upload-file-add-button" url="{{ctrl.newMapUrl}}" file-container="" class="btn btn-success right" onclick="oVmap.getMapManager().loadMapFromFile(this)">{{ 'VMAP_USE' | translate }}</button>
         </div>
     </div>
 </div>
 <br>
-<div class="upload-drop-zone" id="maplist-file-drop-zone">Déplacer le fichier ici</div>
+<div class="upload-drop-zone" id="maplist-file-drop-zone">{{ 'VMAP_MAPMODAL_MAPLIST_DRAG_FILE_HERE' | translate }}</div>
 <div id="maplist-log-message"></div>
 <div class="row">
     <div class="col-md-10"></div>
@@ -40,7 +39,7 @@
                 data-toggle="modal"
                 data-target="#mapmodal-newmap-modal"
                 ng-click="ctrl.initNewMapForm()">
-            Nouvelle carte (vide)
+            {{ 'VMAP_MAPMODAL_MAPLIST_NEW_EMPTY_MAP' | translate }}
         </button>
     </div>
 </div>
@@ -63,11 +62,11 @@
         <div class="col-md-3"></div>
         <div class="col-md-6">
             <div ng-if="node.theme_name !== null && node.theme_name !== undefined">
-                <b>Thème</b>: <i>{{node.theme_name}}</i>
+                <b>{{ 'VMAP_THEME' | translate }}</b>: <i>{{node.theme_name}}</i>
             </div>
         </div>
         <div class="col-md-3">
-            <button type="button" url="{{node.url}}" class="btn btn-primary right" data-dismiss="modal" onclick="oVmap.getMapManager().loadMap(this)">Utiliser cette carte</button>
+            <button type="button" url="{{node.url}}" class="btn btn-primary right" data-dismiss="modal" onclick="oVmap.getMapManager().loadMap(this)">{{ 'VMAP_MAPMODAL_MAPLIST_USE_THIS_MAP' | translate }}</button>
         </div>
     </div>
     <hr>
@@ -84,11 +83,11 @@
         <div class="modal-content">
             <div class="modal-header">
                 <button type="button" class="close" onclick="$('#mapmodal-newmap-modal').modal('hide')">&times;</button>
-                <h4 class="modal-title">Nouvelle carte</h4>
+                <h4 class="modal-title">{{ 'VMAP_MAPMODAL_MAPLIST_NEW_MAP' | translate }}</h4>
             </div>
             <div class="modal-body">
                 <form>
-                    <label>Centre</label>
+                    <label>{{ 'VMAP_CENTER' | translate }}</label>
                     <div class="row">
                         <div class="col-md-4">
                             <div class="input-group">
@@ -107,27 +106,27 @@
                                 <button id="myMap-newMapForm-reproject"
                                         class="btn btn-success"
                                         title="Reprojeter en fonction de la nouvelle projection"
-                                        ng-click="ctrl.reprojectCenter()">Reprojeter</button>
+                                        ng-click="ctrl.reprojectCenter()">{{ 'VMAP_REPROJECT' | translate }}</button>
                             </div>
                         </div>
                     </div>
                     <br>
 
-                    <label>Niveau de zoom</label>
+                    <label>{{ 'VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL' | translate }}</label>
                     <div class="row">
                         <div class="col-md-3">
                             <input type="number" class="form-control" required="true" ng-model="ctrl.mapForm.view.zoom">
                         </div>
                     </div>
                     <br>
-                    <label>Niveau de zoom maximum</label>
+                    <label>{{ 'VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MAX' | translate }}</label>
                     <div class="row">
                         <div class="col-md-3">
                             <input type="number" class="form-control" required="true" ng-model="ctrl.mapForm.view.maxZoom">
                         </div>
                     </div>
                     <br>
-                    <label>Niveau de zoom minimum</label>
+                    <label>{{ 'VMAP_MAPMODAL_MAPLIST_ZOOM_LEVEL_MIM' | translate }}</label>
                     <div class="row">
                         <div class="col-md-3">
                             <input type="number" class="form-control" required="true" ng-model="ctrl.mapForm.view.minZoom">
@@ -135,7 +134,7 @@
                     </div>
                     <br>
 
-                    <label>Projection</label>
+                    <label>{{ 'VMAP_PROJETION' | translate }}</label>
                     <select class="form-control" ng-model="ctrl.mapForm.view.projection">
                         <option ng-repeat="(key, value) in ctrl.projections"
                                 value="{{key}}">{{value}}</option>
@@ -146,7 +145,7 @@
                         <button type="submit"
                                 class="btn btn-primary center"
                                 onclick="$('#mapmodal-newmap-modal').modal('hide')"
-                                ng-click="ctrl.createNewMap()">Créér et utiliser</button>
+                                ng-click="ctrl.createNewMap()">{{ 'VMAP_CREATE_AND_USE' | translate }}</button>
                     </div>
                 </form>
             </div>
diff --git a/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html b/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html
index bbfb1ce35b74f2e4b9d053cecca26f3913f72c2e..274403bf9ae2e933de633e11030ac663330aacdb 100644
--- a/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html
+++ b/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html
@@ -4,13 +4,13 @@
     <div style="width: 100%; height: 30px;">
 
         <select class="form-control minus left margin-5 margin-sides-10" style="width: 200px" ng-model="filterTheme">
-            <option value="">Tous</option>
+            <option value="">{{ 'VMAP_ALL' | translate }}</option>
             <option ng-repeat="theme in themes | orderBy" ng-value="theme">{{theme}}</option>
         </select>
 
         <input class="form-control input-sm right margin-sides-10 margin-5"
                type="text"
-               placeholder="Rechercher"
+               placeholder="{{ 'VMAP_FIND' | translate }}"
                style="width: 200px;"
                ng-model="filter">
     </div>
diff --git a/src/module_vmap/module/template/layers/mapmodal/maplistlitle_mobile.html b/src/module_vmap/module/template/layers/mapmodal/maplistlitle_mobile.html
index 1c7713ffa71b6345a23fbd964ae430141e4d5f90..0b1f7cabd2ddb60260cda03b833f7a098b2e8d2c 100644
--- a/src/module_vmap/module/template/layers/mapmodal/maplistlitle_mobile.html
+++ b/src/module_vmap/module/template/layers/mapmodal/maplistlitle_mobile.html
@@ -5,12 +5,12 @@
         <div class="row">
             <div class="col-xs-6">
                 <select class="form-control minus left margin-5 margin-sides-10" ng-model="filterTheme">
-                    <option value="">Tous</option>
+                    <option value="">{{ 'VMAP_ALL' | translate }}</option>
                     <option ng-repeat="theme in themes track by $index" ng-value="theme">{{theme}}</option>
                 </select>
             </div>
             <div class="col-xs-6">
-                <input class="form-control input-sm right margin-sides-10 margin-5" type="text" placeholder="Rechercher" ng-model="filter">
+                <input class="form-control input-sm right margin-sides-10 margin-5" type="text" placeholder="{{ 'VMAP_FIND' | translate }}" ng-model="filter">
             </div>
         </div>
     </div>
diff --git a/src/module_vmap/module/template/layers/mapmodal/mapmodal.html b/src/module_vmap/module/template/layers/mapmodal/mapmodal.html
index 564c21f759c19544a482e9d3a31bf3f19fe018de..2b961dbd8971d65f50dc660d090821e2b320c574 100755
--- a/src/module_vmap/module/template/layers/mapmodal/mapmodal.html
+++ b/src/module_vmap/module/template/layers/mapmodal/mapmodal.html
@@ -3,7 +3,7 @@
     <div class="modal-content">
         <div class="modal-header">
             <button type="button" id="close-modal-button" class="close" data-dismiss="modal">&times;</button>
-            <h4 class="modal-title">Gestion des cartes</h4>
+            <h4 class="modal-title">{{ 'VMAP_MAPMODAL_TITLE' | translate }}</h4>
         </div>
         <!-- Body -->
         <div class="modal-body modal-body-big">
@@ -13,19 +13,19 @@
                     <br>
                     <ul class="nav nav-pills nav-stacked" style="width: 180px">
                         <br>
-                        <li data-toggle="pill" href="#modal-mymap" class="list-group-item list-group-item-modal active" onclick="oVmap.simuleClick('btn-reload-myMap')">Ma carte</li>
-                        <li data-toggle="pill" href="#modal-maplist" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-maplist')">Changer de carte</li>
+                        <li data-toggle="pill" href="#modal-mymap" class="list-group-item list-group-item-modal active" onclick="oVmap.simuleClick('btn-reload-myMap')">{{ 'VMAP_MAPMODAL_MY_MAP' | translate }}</li>
+                        <li data-toggle="pill" href="#modal-maplist" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-maplist')">{{ 'VMAP_MAPMODAL_CHANGE_MAP' | translate }}</li>
                         <br>
                         <br>
-                        <i class="center"> -- Ajout de couches -- </i>
+                        <i class="center"> -- {{ 'VMAP_MAPMODAL_ADD_LAYERS' | translate }} -- </i>
                         <br>
                         <br>
-                        <li data-toggle="pill" href="#modal-wms" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-wms')">Service WMS</li>
-                        <li data-toggle="pill" href="#modal-wmts" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-wmts')">Service WMTS</li>
-                        <li data-toggle="pill" href="#modal-xyz" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-xyz')">Service XYZ</li>
-                        <li id="modal-geometry-modal-button" data-toggle="pill" href="#modal-geometry" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-geometry')">Fichier local</li>
-                        <li data-toggle="pill" href="#modal-osm" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-osm')">Open Street Map</li>
-                        <li data-toggle="pill" href="#modal-bing" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-bing')">Bing Maps</li>
+                        <li data-toggle="pill" href="#modal-wms" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-wms')">{{ 'VMAP_MAPMODAL_WMS_SERVICE' | translate }}</li>
+                        <li data-toggle="pill" href="#modal-wmts" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-wmts')">{{ 'VMAP_MAPMODAL_WMTS_SERVICE' | translate }}</li>
+                        <li data-toggle="pill" href="#modal-xyz" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-xyz')">{{ 'VMAP_MAPMODAL_XYZ_SERVICE' | translate }}</li>
+                        <li id="modal-geometry-modal-button" data-toggle="pill" href="#modal-geometry" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-geometry')">{{ 'VMAP_MAPMODAL_LOCAL_FILE' | translate }}</li>
+                        <li data-toggle="pill" href="#modal-osm" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-osm')">{{ 'VMAP_MAPMODAL_OSM' | translate }}</li>
+                        <li data-toggle="pill" href="#modal-bing" class="list-group-item list-group-item-modal" onclick="oVmap.simuleClick('btn-reload-bing')">{{ 'VMAP_MAPMODAL_BING' | translate }}</li>
                     </ul>
                 </div>
 
diff --git a/src/module_vmap/module/template/layers/mapmodal/mymap.html b/src/module_vmap/module/template/layers/mapmodal/mymap.html
index da0f769f163d046e75f2fb512a8dfd4592bd58e3..0455f8f6ab9582894f01b72bb4e452b0536d5657 100755
--- a/src/module_vmap/module/template/layers/mapmodal/mymap.html
+++ b/src/module_vmap/module/template/layers/mapmodal/mymap.html
@@ -1,34 +1,33 @@
 <!-- Gestion de la carte en cours -->
 
-
-<h3>Carte en cours: </h3>
+<h3>{{ 'VMAP_MYMAP_TITLE' | translate }}: </h3>
 
 <hr>
 
 <!-- Vue -->
 <br>
 <div class="input-group">
-    <span class="input-group-addon" id="sizing-addon2">Projection:</span>
+    <span class="input-group-addon" id="sizing-addon2">{{ 'VMAP_PROJETION' | translate }}</span>
     <label type="text" class="form-control" value="{{ctrl.displayedView.projection}}" aria-describedby="sizing-addon2" style="cursor:default !important;" readonly>{{ctrl.displayedView.projection}}</label>
 </div>
 <br>
 <div class="row">
     <div class="col-md-3">
         <div class="input-group">
-            <span class="input-group-addon" id="sizing-addon2">Zoom:</span>
+            <span class="input-group-addon" id="sizing-addon2">{{ 'VMAP_ZOOM' | translate }}</span>
             <label type="text" class="form-control" value="{{ctrl.displayedView.zoom}}" aria-describedby="sizing-addon2" style="cursor:default !important;" readonly>{{ctrl.displayedView.zoom}}</label>
         </div>
     </div>
     <div class="col-md-9">
         <div class="input-group">
-            <span class="input-group-addon" id="sizing-addon2">Centre:</span>
+            <span class="input-group-addon" id="sizing-addon2">{{ 'VMAP_CENTER' | translate }}</span>
             <label type="text" class="form-control" value="{{ctrl.displayedView.center}}" aria-describedby="sizing-addon2" style="cursor:default !important;" readonly>{{ctrl.displayedView.center}}</label>
         </div>
     </div>
 </div>
 <br>
 <div class="input-group">
-    <span class="input-group-addon" id="sizing-addon2">Etendue</span>
+    <span class="input-group-addon" id="sizing-addon2">{{ 'VMAP_EXTENT' | translate }}</span>
     <label type="text" class="form-control font-12" value="{{ctrl.displayedView.extent}}" aria-describedby="sizing-addon2" style="cursor:default !important;" readonly>{{ctrl.displayedView.extent}}</label>
 </div>
 
@@ -55,14 +54,14 @@
                                 <div class="col-md-10" style="padding-right: 0px">
                                     <div class="layer-name layer-name-tree">{{layer.name}}</div>
                                     <div class="checkbox checkbox-info inline-checkbox">
-                                        <input ng-model="layer.olLayer.getVisible()" ng-model-options="{getterSetter: true}" type="checkbox" style="cursor:default; position: absolute" title="Definit si la couche est visible">
-                                        <label for="" style="cursor:default" title="Definit si la couche est visible"></label>
+                                        <input ng-model="layer.olLayer.getVisible()" ng-model-options="{getterSetter: true}" type="checkbox" style="cursor:default; position: absolute" title="{{ 'VMAP_LAYERTREE_TITLE_VISIBLE_SHEET' | translate }}">
+                                        <label for="" style="cursor:default" title="{{ 'VMAP_LAYERTREE_TITLE_VISIBLE_SHEET' | translate }}"></label>
                                     </div>
                                 </div>
                                 <div class="col-md-2">
-                                    <button class="btn btn-xs btn-warning glyphicon glyphicon glyphicon-trash right" aria-hidden="true" data-toggle="tooltip" title="Supprime la couche de la carte" ng-click="ctrl.removeLayer(layer.olLayer)"></button>
+                                    <button class="btn btn-xs btn-warning glyphicon glyphicon glyphicon-trash right" aria-hidden="true" data-toggle="tooltip" title="{{ 'VMAP_MYMAP_DELETE_SHEET' | translate }}" ng-click="ctrl.removeLayer(layer.olLayer)"></button>
                                 </div>
-                            </div>						
+                            </div>
                         </div>
                     </li>
                 </ul>
@@ -75,13 +74,13 @@
 <div style="display: inline-block; width: 100%">
 
     <div ng-if="ctrl.isIE">
-        <a id="exportMapButtonIe" class="btn btn-warning left" ng-click="ctrl.downloadBlob()">Télécharger ie</a>
+        <a id="exportMapButtonIe" class="btn btn-warning left" ng-click="ctrl.downloadBlob()">{{ 'VMAP_DOWNLOAD' | translate }}</a>
     </div>
     <div ng-if="!ctrl.isIE">
         <!-- le href est défini dans nsVmap.nsMapManager.nsMapModal.MyMap.mymapController.reloadMapFile -->
-        <a id="exportMapButton" class="btn btn-warning left" href="" download="map.json">Télécharger</a>
+        <a id="exportMapButton" class="btn btn-warning left" href="" download="map.json">{{ 'VMAP_DOWNLOAD' | translate }}</a>
     </div>
 
 
 </div>
-<button id="btn-reload-myMap" style="display: none" ng-click="ctrl.reloadTree()">Reload map</button>
\ No newline at end of file
+<button id="btn-reload-myMap" style="display: none" ng-click="ctrl.reloadTree()">Reload map</button>
diff --git a/src/module_vmap/module/template/layers/mapmodal/osmsuggestions.html b/src/module_vmap/module/template/layers/mapmodal/osmsuggestions.html
index cd6b870f1cd90782bcab1a4ecb0f96bdff38a5a9..7cddb64390585b3671fc777d1e1ebde7bfc2b21c 100755
--- a/src/module_vmap/module/template/layers/mapmodal/osmsuggestions.html
+++ b/src/module_vmap/module/template/layers/mapmodal/osmsuggestions.html
@@ -1,27 +1,27 @@
 <!-- Liste des couches utilisables -->
 
+<h3>{{ 'VMAP_MAPMODAL_OSM_TITLE' | translate }}: </h3>
 
-<h3>Ajouter une couche OSM: </h3>
 <hr>
 
 <div>
     <div class="row">
         <div class="col-xs-3">
-            <b>Nom:</b>
+            <b>{{ 'VMAP_NAME' | translate }}:</b>
         </div>
         <div class="col-xs-7">
-            <b>URL:</b>
+            <b>{{ 'VMAP_URL' | translate }}:</b>
         </div>
     </div>
     <div class="row">
         <div class="col-xs-3">
-            <input type="text" ng-model="ctrl.sLayerName" class="form-control" placeholder="Service name" aria-describedby="sizing-addon1">
+            <input type="text" ng-model="ctrl.sLayerName" class="form-control" placeholder="{{ 'VMAP_SERVICE_NAME' | translate }}" aria-describedby="sizing-addon1">
         </div>
         <div class="col-xs-7">
-            <input type="text" ng-model="ctrl.sLayerUrl" class="form-control" placeholder="Service url" aria-describedby="sizing-addon1">
+            <input type="text" ng-model="ctrl.sLayerUrl" class="form-control" placeholder="{{ 'VMAP_SERVICE_URL' | translate }}" aria-describedby="sizing-addon1">
         </div>
         <div class="col-xs-2">
-            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">Ajouter</button>
+            <button type="button" class="btn btn-success right" ng-click="ctrl.addLayer()">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
 </div>
@@ -32,8 +32,8 @@
 <div ng-repeat="node in ctrl.catalog.services.osm">
     <div class="row">
         <div class="col-xs-3" ng-if="(node.thumbnail | getType) == 'string'">
-            <img src="{{node.thumbnail}}" 
-                 class="img-responsive pointer opacity-hover" 
+            <img src="{{node.thumbnail}}"
+                 class="img-responsive pointer opacity-hover"
                  ng-click="ctrl.addLayer(node)">
         </div>
         <div class="col-xs-9">
@@ -53,9 +53,9 @@
             </div>
         </div>
         <div class="col-xs-2">
-            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">Ajouter</button>
+            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
     <hr>
 </div>
-<button id="btn-reload-osm" style="display: none" ng-click="ctrl.reload()">Reload map</button>
\ No newline at end of file
+<button id="btn-reload-osm" style="display: none" ng-click="ctrl.reload()">Reload map</button>
diff --git a/src/module_vmap/module/template/layers/mapmodal/wmssuggestions.html b/src/module_vmap/module/template/layers/mapmodal/wmssuggestions.html
index f376667739b53412c9cee147b9b5190156853cbd..096259c8eb128c09336c22bf9602593814494a80 100755
--- a/src/module_vmap/module/template/layers/mapmodal/wmssuggestions.html
+++ b/src/module_vmap/module/template/layers/mapmodal/wmssuggestions.html
@@ -1,23 +1,23 @@
 <!-- Liste des cartes utilisables -->
 
 
-<h3>Ajouter une couche WMS: </h3>
+<h3>{{ 'VMAP_MAPMODAL_WMS_TITLE' | translate }}: </h3>
 <hr>
 
 <form ng-submit="ctrl.getCapabilities()">
     <div class="row">
         <div class="col-xs-3">
-            <b>Service: </b>
-            <select class="form-control" 
-                    ng-model="oSelectedService" 
+            <b>{{ 'VMAP_SERVICE' | translate }}: </b>
+            <select class="form-control"
+                    ng-model="oSelectedService"
                     ng-options="oSelectedService.name for oSelectedService in aServices"></select>
         </div>
         <div class="col-xs-9">
-            <b>URL: </b>
+            <b>{{ 'VMAP_URL' | translate }}: </b>
             <div class="input-group">
-                <input type="text" class="form-control" placeholder="Service url" aria-describedby="sizing-addon1" ng-model="oSelectedService.url" ng-change="ctrl.reloadServicesList()">
+                <input type="text" class="form-control" placeholder="{{ 'VMAP_SERVICE_URL' | translate }}" aria-describedby="sizing-addon1" ng-model="oSelectedService.url" ng-change="ctrl.reloadServicesList()">
                 <span class="input-group-btn">
-                    <button type="submit" class="btn btn-success">Voir le contenu</button>
+                    <button type="submit" class="btn btn-success">{{ 'VMAP_GET_CONTENT' | translate }}</button>
                 </span>
             </div>
         </div>
@@ -28,13 +28,13 @@
         </div>
         <div class="col-xs-3">
             <div class="form-group">
-                <b>Identifiant (optionnel):</b>
+                <b>{{ 'VMAP_MAPMODAL_WMS_ID' | translate }}:</b>
                 <input type="text" class="form-control" ng-model="oSelectedService.login" ng-change="ctrl.reloadServicesList()">
             </div>
         </div>
         <div class="col-xs-3">
             <div class="form-group">
-                <b>Mot de passe (optionnel):</b>
+                <b>{{ 'VMAP_MAPMODAL_WMS_PASS' | translate }}:</b>
                 <input type="password" class="form-control" ng-model="oSelectedService.password" ng-change="ctrl.reloadServicesList()">
             </div>
         </div>
@@ -44,18 +44,18 @@
 <div id="load-img-wms" style="display: none; text-align: center"><img src="images/ajax-load-big.gif"></div>
 <div id="wms-suggestions-list" style="display: none">
 
-    <input class="form-control input-sm right margin-sides-10 margin-5" 
-           type="text" 
-           placeholder="Rechercher" 
+    <input class="form-control input-sm right margin-sides-10 margin-5"
+           type="text"
+           placeholder="{{ 'VMAP_FIND' | translate }}"
            style="width: 200px;"
            ng-model="filter">
 
     <table class="table table-striped">
         <thead>
             <tr>
-                <th>Titre</th>
-                <th>Nom</th>
-                <th>Projection</th>
+                <th>{{ 'VMAP_TITLE' | translate }}</th>
+                <th>{{ 'VMAP_NAME' | translate }}</th>
+                <th>{{ 'VMAP_PROJETION' | translate }}</th>
                 <th></th>
             </tr>
         </thead>
@@ -66,10 +66,10 @@
                 <td class="WMSSuggestion">{{node.projections}}</td>
                 <!-- Si la projeciton est bonne -->
                 <td class="WMSSuggestionsButton">
-                    <button type="button" 
+                    <button type="button"
                             class="btn btn-info"
                             ng-class="{'btn-danger': node.projections.indexOf(ctrl.proj) === -1}"
-                            ng-click="ctrl.addLayer(node)">Ajouter</button>
+                            ng-click="ctrl.addLayer(node)">{{ 'VMAP_ADD' | translate }}</button>
                 </td>
             </tr>
         </tbody>
@@ -89,9 +89,9 @@
                       ng-submit="ctrl.addLayer(ctrl.oLayerToAdd, oSelectedStyle.Name)">
                     <div class="row">
                         <div class="col-xs-12">
-                            <label>Style</label>                            
-                            <select class="form-control" 
-                                    ng-model="oSelectedStyle" 
+                            <label>Style</label>
+                            <select class="form-control"
+                                    ng-model="oSelectedStyle"
                                     ng-options="oStyle.Title for oStyle in ctrl.oLayerToAdd.Style"></select>
                             <br>
                             <div ng-repeat="(key, value) in ctrl.oLayerToAdd.Style[iSelectedStyleIndex]" ng-if="(value | getType) == 'string'">
@@ -102,8 +102,8 @@
                 </form>
             </div>
             <div class="modal-footer">
-                <button type="submit" class="btn btn-primary" form="wms-select-style-modal-form">Valider</button>
+                <button type="submit" class="btn btn-primary" form="wms-select-style-modal-form">{{ 'VMAP_VALIDATE' | translate }}</button>
             </div>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/module_vmap/module/template/layers/mapmodal/wmtssuggestions.html b/src/module_vmap/module/template/layers/mapmodal/wmtssuggestions.html
index 5a2f5eadc0ba26f1be0558d74624fc642ae0e6d0..897dc52e39cffb301e05bc516060d29097102c80 100755
--- a/src/module_vmap/module/template/layers/mapmodal/wmtssuggestions.html
+++ b/src/module_vmap/module/template/layers/mapmodal/wmtssuggestions.html
@@ -1,45 +1,45 @@
 <!-- Liste des cartes utilisables -->
 
 
-<h3>Ajouter une couche WMTS: </h3>
+<h3>{{ 'VMAP_MAPMODAL_WMTS_TITLE' | translate }}: </h3>
 <hr>
 
 <form ng-submit="ctrl.getCapabilities()">
     <div class="row">
         <div class="col-xs-3">
-            <b>Service: </b>
-            <select id="select-wmts-service" class="form-control" 
-                    ng-model="iServiceIndex" 
+            <b>{{ 'VMAP_SERVICE' | translate }}: </b>
+            <select id="select-wmts-service" class="form-control"
+                    ng-model="iServiceIndex"
                     ng-change="ctrl.selectService(iServiceIndex)">
                 <option value=""></option>
                 <option ng-repeat="node in ctrl.catalog.services.wmts" value="{{$index}}">{{node.name}}</option>
             </select>
         </div>
         <div class="col-xs-3">
-            <b>Type: </b>
-            <select id="select-wmts-service" class="form-control" 
+            <b>{{ 'VMAP_TYPE' | translate }}: </b>
+            <select id="select-wmts-service" class="form-control"
                     ng-model="ctrl.sRequestType">
                 <option value="KVP">KVP</option>
                 <option value="REST">REST</option>
             </select>
         </div>
         <div class="col-xs-3">
-            <b>Version: </b>
-            <input type="text" id="getCapabilities-wmts-version-field" class="form-control" placeholder="Version" aria-describedby="sizing-addon1" ng-model="ctrl.sRequestVersion">
+            <b>{{ 'VMAP_VERSION' | translate }}: </b>
+            <input type="text" id="getCapabilities-wmts-version-field" class="form-control" placeholder="{{ 'VMAP_VERSION' | translate }}" aria-describedby="sizing-addon1" ng-model="ctrl.sRequestVersion">
         </div>
     </div>
     <br>
     <div class="row">
         <div class="col-xs-12">
-            <b>URL: </b>
+            <b>{{ 'VMAP_URL' | translate }}: </b>
             <div class="input-group">
                 <input type="text" class="form-control" placeholder="Service url" aria-describedby="sizing-addon1" ng-model="ctrl.sRequestUrl">
                 <span class="input-group-btn">
-                    <button type="submit" class="btn btn-success">Voir le contenu</button>
+                    <button type="submit" class="btn btn-success">{{ 'VMAP_GET_CONTENT' | translate }}</button>
                 </span>
             </div>
         </div>
-    </div>    
+    </div>
 </form>
 
 <br>
@@ -47,18 +47,18 @@
 <div id="load-img-wmts" style="display: none; text-align: center"><img src="images/ajax-load-big.gif"></div>
 <div id="wmts-suggestions-list" style="display: none">
 
-    <input class="form-control input-sm right margin-sides-10 margin-5" 
-           type="text" 
-           placeholder="Rechercher" 
+    <input class="form-control input-sm right margin-sides-10 margin-5"
+           type="text"
+           placeholder="Rechercher"
            style="width: 200px;"
            ng-model="filter">
 
     <table class="table table-striped">
         <thead>
             <tr>
-                <th>Titre</th>
-                <th>Nom</th>
-                <th>Matrice</th>
+                <th>{{ 'VMAP_TITLE' | translate }}</th>
+                <th>{{ 'VMAP_NAME' | translate }}</th>
+                <th>{{ 'VMAP_MATRIX' | translate }}</th>
                 <th></th>
             </tr>
         </thead>
@@ -71,9 +71,9 @@
                 </td>
                 <!-- Si la projeciton est bonne -->
                 <td class="WMTSSuggestionsButton">
-                    <button type="button" 
+                    <button type="button"
                             class="btn btn-info"
-                            ng-click="ctrl.addLayer(oLayer)">Ajouter</button>
+                            ng-click="ctrl.addLayer(oLayer)">{{ 'VMAP_ADD' | translate }}</button>
                 </td>
             </tr>
         </tbody>
@@ -92,9 +92,9 @@
 
                 <div class="row">
                     <div class="col-xs-4">
-                        <label>Style</label>
-                        <select class="form-control" 
-                                ng-model="oSelectedStyle" 
+                        <label>{{ 'VMAP_STYLE' | translate }}</label>
+                        <select class="form-control"
+                                ng-model="oSelectedStyle"
                                 ng-change="ctrl.sLayerToAdd_style_name = oSelectedStyle.Identifier"
                                 ng-options="oStyle.Title for oStyle in ctrl.oLayerToAdd.Style"></select>
                         <br>
@@ -103,16 +103,16 @@
                         </div>
                     </div>
                     <div class="col-xs-4">
-                        <label>Format</label>
-                        <select id="select-wmts-service" class="form-control" 
+                        <label>{{ 'VMAP_FORMAT' | translate }}</label>
+                        <select id="select-wmts-service" class="form-control"
                                 ng-model="ctrl.sLayerToAdd_format_name">
                             <option value="?"></option>
                             <option ng-repeat="sFormat in ctrl.oLayerToAdd.Format" value="{{sFormat}}">{{sFormat}}</option>
                         </select>
                     </div>
                     <div class="col-xs-4">
-                        <label>Matrice</label>
-                        <select id="select-wmts-service" class="form-control" 
+                        <label>{{ 'VMAP_MATRIX' | translate }}</label>
+                        <select id="select-wmts-service" class="form-control"
                                 ng-model="ctrl.sLayerToAdd_matrix_name">
                             <option value="?"></option>
                             <option ng-repeat="oMatrix in ctrl.oLayerToAdd.TileMatrixSetLink" value="{{oMatrix.TileMatrixSet}}">{{oMatrix.TileMatrixSet}}</option>
@@ -126,8 +126,8 @@
 
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-primary" ng-click="ctrl.addLayerToAdd()">Valider</button>
+                <button type="button" class="btn btn-primary" ng-click="ctrl.addLayerToAdd()">{{ 'VMAP_VALIDATE' | translate }}</button>
             </div>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/module_vmap/module/template/layers/mapmodal/xyzsuggestions.html b/src/module_vmap/module/template/layers/mapmodal/xyzsuggestions.html
index f07b7c08342d99f47c08b53c22fec7dba51908b3..6d29b5234bb778398b02f2c49c830b115929175d 100755
--- a/src/module_vmap/module/template/layers/mapmodal/xyzsuggestions.html
+++ b/src/module_vmap/module/template/layers/mapmodal/xyzsuggestions.html
@@ -1,38 +1,37 @@
 <!-- Liste des couches utilisables -->
 
 
-<h3>Ajouter une couche XYZ: </h3>
+<h3>{{ 'VMAP_MAPMODAL_XYZ_TITLE' | translate }}: </h3>
 <i>
-    Services tuilés définis par XYZ dans l'URL exemple: http://tile.stamen.com/toner/{z}/{x}/{y}.png.
-    Par défaut, cela suit le modèle le plus utilisé où X(0) et Y(0) sont en haut à gauche.
-    Les grilles de type TMS où ces coordonnées se trouvent en bas à gauche peuvent
-    être utilisées en utilisant {-y} dans l'URL
+    {{ 'VMAP_MAPMODAL_XYZ_DESCR_1' | translate }}<br>
+    {{ 'VMAP_MAPMODAL_XYZ_DESCR_2' | translate }}<br>
+    {{ 'VMAP_MAPMODAL_XYZ_DESCR_3' | translate }}<br>
 </i>
 <hr>
 
 <form ng-submit="ctrl.addLayer()">
     <div class="row">
         <div class="col-xs-3">
-            <b>Service:</b>
-            <input type="text" class="form-control" placeholder="Nom du service" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sService" required>
+            <b>{{ 'VMAP_SERVICE' | translate }}:</b>
+            <input type="text" class="form-control" placeholder="{{ 'VMAP_SERVICE_NAME' | translate }}" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sService" required>
         </div>
         <div class="col-xs-3">
-            <b>Couche:</b>
-            <input type="text" class="form-control" placeholder="Nom de la couche" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sLayer" required>
+            <b>{{ 'VMAP_LAYER' | translate }}:</b>
+            <input type="text" class="form-control" placeholder="{{ 'VMAP_LAYER_NAME' | translate }}" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sLayer" required>
         </div>
     </div>
     <br>
     <div class="row">
         <div class="col-xs-10">
-            <b>URL: </b>
+            <b>{{ 'VMAP_URL' | translate }}: </b>
         </div>
     </div>
     <div class="row">
         <div class="col-xs-10">
-            <input type="text" class="form-control" placeholder="Service url" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sUrl" required>
+            <input type="text" class="form-control" placeholder="{{ 'VMAP_SERVICE_URL' | translate }}" aria-describedby="sizing-addon1" ng-model="ctrl.oLayerToAdd.sUrl" required>
         </div>
         <div class="col-xs-2">
-            <button type="submit" class="btn btn-success right">Ajouter</button>
+            <button type="submit" class="btn btn-success right">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
 </form>
@@ -42,8 +41,8 @@
 <div ng-repeat="node in ctrl.catalog.services.xyz">
     <div class="row">
         <div class="col-xs-3" ng-if="(node.thumbnail | getType) == 'string'">
-            <img src="{{node.thumbnail}}" 
-                 class="img-responsive pointer opacity-hover" 
+            <img src="{{node.thumbnail}}"
+                 class="img-responsive pointer opacity-hover"
                  ng-click="ctrl.addLayer(node)">
         </div>
         <div class="col-xs-9">
@@ -63,9 +62,9 @@
             </div>
         </div>
         <div class="col-xs-2">
-            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">Ajouter</button>
+            <button type="button" class="btn btn-primary right" ng-click="ctrl.addLayer(node)">{{ 'VMAP_ADD' | translate }}</button>
         </div>
     </div>
     <hr>
 </div>
-<button id="btn-reload-xyz" style="display: none" ng-click="ctrl.reload()">Reload map</button>
\ No newline at end of file
+<button id="btn-reload-xyz" style="display: none" ng-click="ctrl.reload()">Reload map</button>