diff --git a/src/module_vmap/module/lang/lang-en.json b/src/module_vmap/module/lang/lang-en.json
index a374d1b90562cd59e3bce6a3722ffa61f911be09..2d30faf8342b2fa9a02720650dbe2b75053604f5 100644
--- a/src/module_vmap/module/lang/lang-en.json
+++ b/src/module_vmap/module/lang/lang-en.json
@@ -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",
@@ -688,6 +689,11 @@
     "VMAP_MAPMODAL_WMS_ID": "Login (not required)",
     "VMAP_MAPMODAL_WMS_PASS": "Password (not required)",
     "": "",
-    "VMAP_MAPMODAL_WMTS_TITLE": "Ajouter une couche WMTS",
+    "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 ef0d034f265c18e7c4ef28bb2fbc5e1ea7193863..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",
@@ -689,5 +690,10 @@
     "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/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>