diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index e39ea7fbe..e3d6d01cf 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -83,7 +83,8 @@
         },
         "tagRenderings": {
             "artwork-artist-wikidata": {
-                "question": "Qui a fait cette oeuvre d'art ?"
+                "question": "Qui a fait cette oeuvre d'art ?",
+                "render": "Cette oeuvre a été crée par {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}"
             },
             "artwork-artist_name": {
                 "question": "Quel artiste a créé cette œuvre ?",
@@ -97,6 +98,15 @@
                     "1": {
                         "then": "Peinture murale"
                     },
+                    "10": {
+                        "then": "Azulejo (faïence latine)"
+                    },
+                    "11": {
+                        "then": "Carrelage"
+                    },
+                    "12": {
+                        "then": "Sculpture sur bois"
+                    },
                     "2": {
                         "then": "Peinture"
                     },
@@ -120,15 +130,6 @@
                     },
                     "9": {
                         "then": "Relief"
-                    },
-                    "10": {
-                        "then": "Azulejo (faïence latine)"
-                    },
-                    "11": {
-                        "then": "Carrelage"
-                    },
-                    "12": {
-                        "then": "Sculpture sur bois"
                     }
                 },
                 "question": "Quel est le type de cette œuvre d'art ?",
@@ -1838,10 +1839,10 @@
             "crossing-has-island": {
                 "mappings": {
                     "0": {
-                        "then": "Ce passage a une île au milieu"
+                        "then": "Ce passage a un îlot au milieu"
                     },
                     "1": {
-                        "then": "Ce passage n'a pas d'île au milieu"
+                        "then": "Ce passage n'a pas d'îlot au milieu"
                     }
                 },
                 "question": "Est-ce que ce passage a un refuge au milieu ?"
@@ -1990,6 +1991,15 @@
                     "1": {
                         "then": "Cette piste cyclable est goudronée"
                     },
+                    "10": {
+                        "then": "Cette piste cyclable est faite en graviers fins"
+                    },
+                    "11": {
+                        "then": "Cette piste cyclable est en cailloux"
+                    },
+                    "12": {
+                        "then": "Cette piste cyclable est faite en sol brut"
+                    },
                     "2": {
                         "then": "Cette piste cyclable est asphaltée"
                     },
@@ -2013,15 +2023,6 @@
                     },
                     "9": {
                         "then": "Cette piste cyclable est faite en graviers"
-                    },
-                    "10": {
-                        "then": "Cette piste cyclable est faite en graviers fins"
-                    },
-                    "11": {
-                        "then": "Cette piste cyclable est en cailloux"
-                    },
-                    "12": {
-                        "then": "Cette piste cyclable est faite en sol brut"
                     }
                 },
                 "question": "De quoi est faite la surface de la piste cyclable ?",
@@ -2070,6 +2071,15 @@
                     "1": {
                         "then": "Cette piste cyclable est pavée"
                     },
+                    "10": {
+                        "then": "Cette piste cyclable est faite en graviers fins"
+                    },
+                    "11": {
+                        "then": "Cette piste cyclable est en cailloux"
+                    },
+                    "12": {
+                        "then": "Cette piste cyclable est faite en sol brut"
+                    },
                     "2": {
                         "then": "Cette piste cyclable est asphaltée"
                     },
@@ -2093,15 +2103,6 @@
                     },
                     "9": {
                         "then": "Cette piste cyclable est faite en graviers"
-                    },
-                    "10": {
-                        "then": "Cette piste cyclable est faite en graviers fins"
-                    },
-                    "11": {
-                        "then": "Cette piste cyclable est en cailloux"
-                    },
-                    "12": {
-                        "then": "Cette piste cyclable est faite en sol brut"
                     }
                 },
                 "question": "De quel materiel est faite cette rue ?",
@@ -2921,6 +2922,21 @@
                     "1": {
                         "then": "C'est une friterie"
                     },
+                    "10": {
+                        "then": "Des plats chinois sont servis ici"
+                    },
+                    "11": {
+                        "then": "Des plats grecs sont servis ici"
+                    },
+                    "12": {
+                        "then": "Des plats indiens sont servis ici"
+                    },
+                    "13": {
+                        "then": "Des plats turcs sont servis ici"
+                    },
+                    "14": {
+                        "then": "Des plats thaïlandais sont servis ici"
+                    },
                     "2": {
                         "then": "Restaurant Italien"
                     },
@@ -2944,21 +2960,6 @@
                     },
                     "9": {
                         "then": "Des plats français sont servis ici"
-                    },
-                    "10": {
-                        "then": "Des plats chinois sont servis ici"
-                    },
-                    "11": {
-                        "then": "Des plats grecs sont servis ici"
-                    },
-                    "12": {
-                        "then": "Des plats indiens sont servis ici"
-                    },
-                    "13": {
-                        "then": "Des plats turcs sont servis ici"
-                    },
-                    "14": {
-                        "then": "Des plats thaïlandais sont servis ici"
                     }
                 },
                 "question": "Quelle type de nourriture est servie ici ?",
@@ -3388,6 +3389,14 @@
             "render": "Carte"
         }
     },
+    "maxspeed": {
+        "tagRenderings": {
+            "maxspeed-maxspeed": {
+                "question": "Quelle est la vitesse maximum autorisée sur cette route ?",
+                "render": "La vitesse maximum autorisée sur cette route est {canonical(maxspeed)}"
+            }
+        }
+    },
     "nature_reserve": {
         "tagRenderings": {
             "Curator": {
@@ -3498,6 +3507,13 @@
         "description": "Sentiers piétonniers, particulièrement utilisés pour la navigation intérieure et les entrées d'accrochage à cette couche",
         "name": "Sentiers piétons"
     },
+    "pharmacy": {
+        "tagRenderings": {
+            "name": {
+                "render": "Cette pharmacie s'appelle {name}"
+            }
+        }
+    },
     "physiotherapist": {
         "presets": {
             "0": {
@@ -3788,8 +3804,58 @@
             "render": "Microbibliothèque"
         }
     },
+    "railway_platforms": {
+        "description": "Trouvez tous les quais dans la gare, et les lignes ferroviaires qui les utilisent.",
+        "name": "Quais de gare",
+        "tagRenderings": {
+            "ref": {
+                "freeform": {
+                    "placeholder": "Numéro de quai"
+                },
+                "question": "Quel est le numéro de ce quai ?",
+                "render": "Quai {ref}"
+            }
+        },
+        "title": {
+            "mappings": {
+                "0": {
+                    "then": "Quai {ref}"
+                }
+            },
+            "render": "Quai"
+        }
+    },
+    "rainbow_crossings": {
+        "description": "Une couche affichant les passages piétons avec des peintures arc-en-ciel",
+        "name": "Passages avec peinture arc-en-ciel",
+        "presets": {
+            "0": {
+                "description": "Passage piéton",
+                "title": "un passage"
+            }
+        },
+        "tagRenderings": {
+            "crossing-with-rainbow": {
+                "mappings": {
+                    "0": {
+                        "then": "Ce passage a une peinture arc-en-ciel"
+                    },
+                    "1": {
+                        "then": "Pas de peinture arc-en-ciel ici"
+                    },
+                    "2": {
+                        "then": "Pas de peinture arc-en-ciel ici"
+                    }
+                },
+                "question": "Ce passage a-t-il une peinture arc-en-ciel ?"
+            }
+        },
+        "title": {
+            "render": "Passage"
+        }
+    },
     "reception_desk": {
-        "description": "Un calque montrant où se trouvent les bureaux d'accueil et qui demande des informations d'accessibilité",
+        "description": "Une couche montrant où se trouvent les bureaux d'accueil et qui demande des informations d'accessibilité",
         "name": "Bureaux d'accueil",
         "presets": {
             "0": {
@@ -3926,6 +3992,9 @@
     "selected_element": {
         "description": "Met en surbrillance l'élément actuellement sélectioné. Surcharger cette couche pour avoir d'autres couleurs."
     },
+    "shelter": {
+        "name": "Abri"
+    },
     "shops": {
         "deletion": {
             "extraDeleteReasons": {
@@ -4515,13 +4584,20 @@
                     "0": {
                         "then": "Accès publique"
                     },
+                    "1": {
+                        "then": "Accessibles uniquement au clients du lieu"
+                    },
+                    "2": {
+                        "then": "Non accessibles, même pour les clients du lieu"
+                    },
                     "3": {
-                        "then": "Accessible, mais vous devez demander la clé"
+                        "then": "Accessibles, mais vous devez demander la clé"
                     },
                     "4": {
                         "then": "Accès publique"
                     }
                 },
+                "question": "Ces toilettes sont-elles librement accessibles ?",
                 "render": "L'accès est {toilets:access}"
             },
             "toilet-charge": {
@@ -4595,6 +4671,116 @@
             "render": "Sentier"
         }
     },
+    "transit_routes": {
+        "tagRenderings": {
+            "from": {
+                "render": "Cette ligne de bus commence à {from}"
+            },
+            "network": {
+                "render": "Cette ligne de bus fait partie du réseau {network}"
+            },
+            "operator": {
+                "render": "Cette ligne de bus est gérée par {operator}"
+            },
+            "to": {
+                "render": "Cette ligne de bus termine à {to}"
+            },
+            "via": {
+                "render": "Cette ligne de bus passe par {via}"
+            }
+        }
+    },
+    "transit_stops": {
+        "filter": {
+            "0": {
+                "options": {
+                    "0": {
+                        "question": "Avec un abri"
+                    }
+                }
+            },
+            "1": {
+                "options": {
+                    "0": {
+                        "question": "Avec un banc"
+                    }
+                }
+            },
+            "2": {
+                "options": {
+                    "0": {
+                        "question": "Avec un poubelle"
+                    }
+                }
+            }
+        },
+        "name": "Arrêts de transport en commun",
+        "tagRenderings": {
+            "bench": {
+                "mappings": {
+                    "0": {
+                        "then": "Cet arrêt a un banc"
+                    },
+                    "1": {
+                        "then": "Cet arrêt n'a pas de banc"
+                    }
+                }
+            },
+            "bin": {
+                "mappings": {
+                    "0": {
+                        "then": "Cet arrêt a un poubelle"
+                    },
+                    "1": {
+                        "then": "Cet arrêt n'a pas de poubelle"
+                    }
+                }
+            },
+            "departures_board": {
+                "mappings": {
+                    "1": {
+                        "then": "Cet arrêt a un panneau indiquant les départs en temps réel"
+                    }
+                }
+            },
+            "lit": {
+                "mappings": {
+                    "0": {
+                        "then": "Cet arrêt est éclairé"
+                    },
+                    "1": {
+                        "then": "Cet arrêt n'est pas éclairé"
+                    }
+                },
+                "question": "Cet arrêt est-il éclairé ?"
+            },
+            "shelter": {
+                "mappings": {
+                    "0": {
+                        "then": "Cet arrêt a un abri"
+                    },
+                    "1": {
+                        "then": "Cet arrêt n'a pas d'abri"
+                    }
+                },
+                "question": "Cet arrêt a-t-il un abri ?"
+            },
+            "stop_name": {
+                "render": "Cet arrêt est nommé {name}"
+            },
+            "tactile_paving": {
+                "mappings": {
+                    "0": {
+                        "then": "Cet arrêt a une surface podotactile"
+                    },
+                    "1": {
+                        "then": "Cet arrêt n'a pas de surface podotactile"
+                    }
+                },
+                "question": "Cet arrêt a-t-il une surface podotactile ?"
+            }
+        }
+    },
     "tree_node": {
         "description": "Une couche montrant les arbres",
         "name": "Arbre",
@@ -4722,12 +4908,29 @@
     },
     "usersettings": {
         "tagRenderings": {
+            "translation-completeness": {
+                "render": "Les traductions pour {_theme} en {_language} sont à {_translation_percentage} % : {_translation_translated_count} chaînes traduites sur {_translation_total}"
+            },
             "translation-help": {
                 "mappings": {
                     "0": {
                         "then": "Cliquez sur l'icône \"traduire\" à côté d'une chaîne de caractères pour saisir ou mettre à jour la chaine de texte. Vous aurez besoin d'un compte Weblate pour cela. Créez-en un avec votre nom d'utilisateur OSM pour déverrouiller automatiquement le mode traduction."
                     }
                 }
+            },
+            "translation-mode": {
+                "mappings": {
+                    "1": {
+                        "then": "Afficher un bouton pour ouvrir rapidement les traductions lorsque vous utilisez MapComplete sur un grand écran"
+                    }
+                }
+            },
+            "verified-mastodon": {
+                "mappings": {
+                    "0": {
+                        "then": "Un lien vers votre profil Mastodon a été trouvé : {_mastodon_link}"
+                    }
+                }
             }
         }
     },
@@ -4865,4 +5068,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}