diff --git a/v2/cmd/wails/internal/version.txt b/v2/cmd/wails/internal/version.txt
index 4f00f11bc2b..ed51b084034 100644
--- a/v2/cmd/wails/internal/version.txt
+++ b/v2/cmd/wails/internal/version.txt
@@ -1 +1 @@
-v2.8.2
\ No newline at end of file
+v2.9.0
\ No newline at end of file
diff --git a/website/i18n/en/docusaurus-plugin-content-docs/version-v2.9.0.json b/website/i18n/en/docusaurus-plugin-content-docs/version-v2.9.0.json
new file mode 100644
index 00000000000..5416a15af63
--- /dev/null
+++ b/website/i18n/en/docusaurus-plugin-content-docs/version-v2.9.0.json
@@ -0,0 +1,38 @@
+{
+ "version.label": {
+ "message": "v2.9.0",
+ "description": "The label for version v2.9.0"
+ },
+ "sidebar.docs.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar docs"
+ },
+ "sidebar.docs.category.Reference": {
+ "message": "Reference",
+ "description": "The label for category Reference in sidebar docs"
+ },
+ "sidebar.docs.category.Runtime": {
+ "message": "Runtime",
+ "description": "The label for category Runtime in sidebar docs"
+ },
+ "sidebar.docs.category.Community": {
+ "message": "Community",
+ "description": "The label for category Community in sidebar docs"
+ },
+ "sidebar.docs.category.Showcase": {
+ "message": "Showcase",
+ "description": "The label for category Showcase in sidebar docs"
+ },
+ "sidebar.docs.category.Guides": {
+ "message": "Guides",
+ "description": "The label for category Guides in sidebar docs"
+ },
+ "sidebar.docs.category.Tutorials": {
+ "message": "Tutorials",
+ "description": "The label for category Tutorials in sidebar docs"
+ },
+ "sidebar.docs.link.Contributing": {
+ "message": "Contributing",
+ "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing"
+ }
+}
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/links.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/links.mdx
new file mode 100644
index 00000000000..d6b742435e4
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/links.mdx
@@ -0,0 +1,26 @@
+---
+sidebar_position: 2
+---
+
+# Liens
+
+Cette page sert de liste pour les liens liés à la communauté. Veuillez soumettre une PR (cliquez sur `Modifier cette page` en bas) pour soumettre des liens.
+
+## Awesome Wails
+
+La [liste définitive](https://github.com/wailsapp/awesome-wails) de liens relatifs à Wails.
+
+## Canaux de support
+
+- [Serveur Discord Wails](https://discord.gg/JDdSxwjhGf)
+- [Github Issues](https://github.com/wailsapp/wails/issues)
+- [canal de discussion sur la bêta v2](https://github.com/wailsapp/wails/discussions/828)
+
+## Réseaux sociaux
+
+- [Twitter](https://twitter.com/wailsapp)
+- [Groupe QQ pour la communauté chinoise de Wails](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Numéro de groupe : 1067173054
+
+## Autres tutoriels et articles
+
+- [Construction d'un Panneau d'Affichage](https://blog.customct.com/building-bulletin-board)
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/bulletinboard.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/bulletinboard.mdx
new file mode 100644
index 00000000000..2c56a2e836c
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/bulletinboard.mdx
@@ -0,0 +1,10 @@
+# BulletinBoard
+
+```mdx-code-block
+
+
+
+
+```
+
+L'application [BulletinBoard](https://github.com/raguay/BulletinBoard) est un panneau de messages versitaux pour les messages statiques ou les boîtes de dialogue pour obtenir des informations de l'utilisateur pour un script. Il a une TUI pour créer de nouvelles boîtes de dialogue qui peuvent être utilisées pour obtenir des informations de l'utilisateur. Son design est de rester en fonctionnement sur votre système et de montrer les informations au besoin, puis de se cacher. J'ai un processus pour surveiller un fichier sur mon système et pour envoyer le contenu à BulletinBoard une fois modifié. Cela fonctionne très bien avec mes workflows. Il y a auss un [workflow Alfred](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) pour envoyer les informations au programme. Le workflow fonctionne aussi avec [EmailIt](https://github.com/raguay/EmailIt).
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/cfntracker.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/cfntracker.mdx
new file mode 100644
index 00000000000..568c964b70e
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/cfntracker.mdx
@@ -0,0 +1,42 @@
+# CFN Tracker
+
+```mdx-code-block
+
+
+
+
+```
+
+[CFN Tracker](https://github.com/williamsjokvist/cfn-tracker) - Suivez les
+matchs en direct de n'importe quel profil Street Fighter 6 ou V CFN. Consultez
+[le site Web](https://cfn.williamsjokvist.se/) pour commencer.
+
+## Caractéristiques
+
+- Suivi des matchs en temps réel
+- Stockage des journaux de match et des statistiques
+- Prise en charge de l'affichage des statistiques en direct sur OBS via la
+ source du navigateur
+- Prise en charge de SF6 et SFV
+- Possibilité pour les utilisateurs de créer leurs propres thèmes de navigateur
+ OBS avec CSS
+
+### Technologie majeure utilisée aux côtés de Wails
+
+- [Tâche](https://github.com/go-task/task) - encapsulation de la CLI Wails pour
+ rendre les commandes courantes faciles à utiliser
+- [React](https://github.com/facebook/react) - choisi pour son riche écosystème
+ (radix, framer-motion)
+- [Bun](https://github.com/oven-sh/bun) - utilisé pour sa résolution rapide des
+ dépendances et son temps de construction
+- [Rod](https://github.com/go-rod/rod) - automatisation du navigateur sans tête
+ pour les modifications d'authentification et d'interrogation
+- [SQLite](https://github.com/mattn/go-sqlite3) - utilisé pour stocker les
+ correspondances, les sessions et les profils
+- [Server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) -
+ un flux http pour envoyer des mises à jour de suivi aux sources du navigateur
+ OBS
+- [i18next](https://github.com/i18next/) - avec connecteur backend pour servir
+ les objets de localisation de la couche Go
+- [xstate](https://github.com/statelyai/xstate) - machines à états pour le
+ processus d'authentification et le suivi
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/emailit.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/emailit.mdx
new file mode 100644
index 00000000000..ac64e25acce
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/emailit.mdx
@@ -0,0 +1,10 @@
+# EmailIt
+
+```mdx-code-block
+
+
+
+
+```
+
+[EmailIt](https://github.com/raguay/EmailIt/) est un programme Wails 2 qui est un expéditeur de courrier électronique basé sur le markdown uniquement avec neuf blocs-notes, pour manipuler le texte et les modèles. Il a également un terminal pour exécuter des scripts dans EmailIt sur les fichiers de votre système. Les scripts et modèles peuvent être utilisés depuis la ligne de commande elle-même ou avec les extensions Alfred, Keyboard Maestro, Dropzone ou PopClip. Il supporte également les scripts et thèmes téléchargés sous GitHub. La documentation n'est pas complète, mais le programme fonctionne. Il est construit en utilisant Wails2 et Svelte, et le téléchargement est une application macOS universelle.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/encrypteasy.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/encrypteasy.mdx
new file mode 100644
index 00000000000..7f4bd7a634a
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/encrypteasy.mdx
@@ -0,0 +1,12 @@
+# EncryptEasy
+
+```mdx-code-block
+
+
+
+
+```
+
+**[EncryptEasy](https://www.encrypteasy.app) est un outil de chiffrement PGP simple et facile à utiliser, qui gère toutes vos clés et celles de vos contacts. Le chiffrement devrait être simple. Développé avec Wails.**
+
+Chiffrer les messages à l'aide de PGP est la norme de l'industrie. Tout le monde a une clé privée et publique. Votre clé privée, eh bien, doit être privée afin que vous seul puissiez lire les messages. Votre clé publique est distribuée à toute personne qui veut vous envoyer des messages secrets, chiffrés. Gérer les clés, chiffrer les messages et déchiffrer les messages devrait être une expérience agréable. EncryptEasy a pour but de vous simplifier la tâche.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/espstudio.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/espstudio.mdx
new file mode 100644
index 00000000000..aae652e2c3c
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/espstudio.mdx
@@ -0,0 +1,13 @@
+# ESP Studio
+
+```mdx-code-block
+
+
+
+
+```
+
+[ESP Studio](https://github.com/torabian/esp-studio) - Logiciels multiplateformes, de bureau, cloud et embarqués
+pour contrôler les appareils ESP/Arduino et créer des flux de travail et des systèmes de contrôle IOT complexes
\ No newline at end of file
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/filehound.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/filehound.mdx
new file mode 100644
index 00000000000..7522afa6ecf
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/filehound.mdx
@@ -0,0 +1,16 @@
+# Utilitaire d'exportation FileHound
+
+```mdx-code-block
+
+
+
+
+```
+
+[L'utilitaire d'exportation FileHound](https://www.filehound.co.uk/) est une plate-forme de gestion de documents cloud conçue pour la conservation sécurisée de fichiers, l'automatisation des processus métier et les capacités de SmartCapture.
+
+L'utilitaire d'exportation FileHound permet aux administrateurs FileHound d'exécuter des tâches sécurisées d'extraction de documents et de données à des fins alternatives de sauvegarde et de récupération. Cette application téléchargera tous les documents et/ou métadonnées enregistrés dans FileHound en fonction des filtres que vous avez choisis. Les métadonnées seront exportées dans les formats JSON et XML.
+
+Backend construit avec: Go 1.15 Wails 1.11.0 go-sqlite3 1.14.6 go-linq 3.2
+
+Frontend avec: Vue 2.6.11 Vuex 3.4.0 TypeScript Tailwind 1.9.6
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/hiposter.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/hiposter.mdx
new file mode 100644
index 00000000000..21fd4b11743
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/hiposter.mdx
@@ -0,0 +1,10 @@
+# hiposter
+
+```mdx-code-block
+
+
+
+
+```
+
+[hiposter](https://github.com/obity/hiposter) est un outil client de test d'API http simple et efficace. Basé sur les Wails, Go et sveltejs.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/minecraftupdater.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/minecraftupdater.mdx
new file mode 100644
index 00000000000..5966e75fa63
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/minecraftupdater.mdx
@@ -0,0 +1,14 @@
+# Minecraft Updater
+
+```mdx-code-block
+
+
+
+
+```
+
+[Minecraft Updater](https://github.com/Gurkengewuerz/MinecraftModUpdater) est un outil utilitaire pour mettre à jour et synchroniser les mods Minecraft pour votre base d'utilisateurs. Il a été conçu en utilisant Wails2 et React avec [antd](https://ant.design/) comme framework frontend.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/modalfilemanager.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/modalfilemanager.mdx
new file mode 100644
index 00000000000..fe644bd7bb5
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/modalfilemanager.mdx
@@ -0,0 +1,14 @@
+# Modal File Manager
+
+```mdx-code-block
+
+
+
+
+```
+
+[Modal File Manager](https://github.com/raguay/ModalFileManager) est un gestionnaire de fichiers à double volet utilisant des technologies web. Mon design original était basé sur NW.js et peut être trouvé [ici](https://github.com/raguay/ModalFileManager-NWjs). Cette version utilise le même code frontend basé sur Svelte (mais il a été grandement modifié depuis le départ de NW.js), mais le backend est une implémentation de [Wails 2](https://wails.io/). En utilisant cette implémentation, je n'utilise plus la ligne de commande `rm`, `cp`, etc. , mais une installation de git doit être présente sur le système pour télécharger des thèmes et des extensions. Il est entièrement codé en utilisant Go et fonctionne beaucoup plus rapidement que les versions précédentes.
+
+Ce gestionnaire de fichiers est conçu autour du même principe que Vim: l'état est contrôlé par des actions via le clavier. Le nombre d'états n'est pas fixe, mais très programmable. Par conséquent, un nombre infini de configurations de clavier qui peuvent être créées et utilisées. C'est la principale différence par rapport aux autres gestionnaires de fichiers. Il y a des thèmes et des extensions disponibles à télécharger à partir de GitHub.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/mollywallet.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/mollywallet.mdx
new file mode 100644
index 00000000000..70a6cd1f44d
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/mollywallet.mdx
@@ -0,0 +1,10 @@
+# Molley Wallet
+
+```mdx-code-block
+
+
+
+
+```
+
+[Molly Wallet](https://github.com/grvlle/constellation_wallet/) le portefeuille officiel $DAG du Constellation Network. Cela permettra aux utilisateurs d'interagir avec le réseau Hypergraph de différentes manières, sans se limiter à la production de transactions en $DAG.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/october.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/october.mdx
new file mode 100644
index 00000000000..5a9789d8711
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/october.mdx
@@ -0,0 +1,14 @@
+# October
+
+```mdx-code-block
+
+
+
+
+```
+
+[Octobre](https://october.utf9k.net) est une petite application Wails qui rend vraiment facile d'extraire les surlignements de [Kobo eReaders](https://en.wikipedia.org/wiki/Kobo_eReader) puis de les transférer vers [Readwise](https://readwise.io).
+
+Il a une taille relativement petite avec toutes les versions de la plate-forme pesant en moins de 10 Mo, et c'est sans activer la [compression UPX](https://upx.github.io/)!
+
+En revanche, les précédentes tentatives de l'auteur avec Electron ont rapidement gonflé à plusieurs centaines de mégaoctets.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/optimus.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/optimus.mdx
new file mode 100644
index 00000000000..41744234d37
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/optimus.mdx
@@ -0,0 +1,10 @@
+# Optimus
+
+```mdx-code-block
+
+
+
+
+```
+
+[Optimus](https://github.com/splode/optimus) est une application d'optimisation d'image de bureau. Il supporte la conversion et la compression entre les formats d’images WebP, JPEG et PNG.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/portfall.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/portfall.mdx
new file mode 100644
index 00000000000..acdc682becf
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/portfall.mdx
@@ -0,0 +1,10 @@
+# Portfall
+
+```mdx-code-block
+
+
+
+
+```
+
+[Portfall](https://github.com/rekon-oss/portfall) - Un portail de redirection de port k8 pour un accès facile à toutes les interfaces de votre instance
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/restic-browser.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/restic-browser.mdx
new file mode 100644
index 00000000000..b6597166852
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/restic-browser.mdx
@@ -0,0 +1,12 @@
+# Restic Browser
+
+```mdx-code-block
+
+
+
+
+```
+
+[Restic-Browser](https://github.com/emuell/restic-browser) - Une interface de sauvegarde simple et multiplateforme [restic](https://github.com/restic/restic) pour la navigation et la restauration de dépôts restic.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/riftshare.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/riftshare.mdx
new file mode 100644
index 00000000000..e47b2397e63
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/riftshare.mdx
@@ -0,0 +1,21 @@
+# RiftShare
+
+```mdx-code-block
+
+
+
+
+```
+
+Partage de fichiers facile, sécurisé et gratuit pour tout le monde. Apprenez-en plus sur [Riftshare.app](https://riftshare.app)
+
+## Fonctionnalités
+
+- Partage facile et sécurisé de fichiers entre ordinateurs à la fois sur le réseau local et via Internet
+- Supporte l'envoi de fichiers ou de répertoires de manière sécurisée par le protocole [magic wormhole](https://magic-wormhole.readthedocs.io/en/latest/)
+- Compatible avec toutes les autres applications utilisant magic wormhole (magic-wormhole or wormhole-william CLI, wormhole-gui, etc.)
+- Compression automatique de plusieurs fichiers sélectionnés à envoyer en même temps
+- Animations complètes, barre de progression et support d'annulation pour l'envoi et la réception
+- Sélection de fichier natif au système d'exploitation
+- Ouvrir les fichiers en un seul clic une fois reçus
+- Mise à jour automatique - ne vous inquiétez pas d'avoir la dernière version!
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/scriptbar.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/scriptbar.mdx
new file mode 100644
index 00000000000..d7215d66126
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/scriptbar.mdx
@@ -0,0 +1,10 @@
+# ScriptBar
+
+```mdx-code-block
+
+
+
+
+```
+
+[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) est un programme pour afficher la sortie de scripts ou d'un serveur [Node-Red](https://nodered.org). Il exécute des scripts définis dans le programme EmailIt et affiche la sortie. Des scripts de xBar ou TextBar peuvent être utilisés. Actuellement sur les scripts TextBar fonctionnent bien. Il affiche également la sortie des scripts sur votre système. ScriptBar ne les met pas dans la barre de menus, mais les a tous dans une fenêtre convenable pour une visualisation facile. Vous pouvez avoir plusieurs onglets pour voir plusieurs choses différentes. Vous pouvez également conserver les liens vers vos sites Web les plus visités.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/surge.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/surge.mdx
new file mode 100644
index 00000000000..b5917484303
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/surge.mdx
@@ -0,0 +1,10 @@
+# Surge
+
+```mdx-code-block
+
+
+
+
+```
+
+[Surge](https://getsurge.io/) est une application de partage de fichiers p2p conçue pour utiliser les technologies blockchain afin d'activer les transferts de fichiers 100 % anonymes. Surge est chiffré de bout en bout, décentralisé et open source.
diff --git a/website/versioned_docs/version-v2.8.0/community/showcase/tinyrdm.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/tinyrdm.mdx
similarity index 100%
rename from website/versioned_docs/version-v2.8.0/community/showcase/tinyrdm.mdx
rename to website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/tinyrdm.mdx
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wally.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wally.mdx
new file mode 100644
index 00000000000..ba2a7fccc45
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wally.mdx
@@ -0,0 +1,10 @@
+# Wally
+
+```mdx-code-block
+
+
+
+
+```
+
+[Wally](https://ergodox-ez.com/pages/wally) est le flasheur officiel du firmware pour les claviers [Ergodox](https://ergodox-ez.com/). C'est un excellent exemple de ce que vous pouvez réaliser avec Wails : la capacité de combiner la puissance de Go et les riches outils graphiques du monde du développement web.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/warmine.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/warmine.mdx
new file mode 100644
index 00000000000..2e427433069
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/warmine.mdx
@@ -0,0 +1,19 @@
+# Lanceur Minecraft pour WarMine
+
+```mdx-code-block
+
+
+
+
+
+```
+
+[Lanceur Minecraft pour WarMine](https://warmine.ru/) est une application Wails qui vous permet facilement de rejoindre le serveur de jeu contenant les mods, ainsi que la gestion de vos comptes de jeu.
+
+Le Launcher télécharge les fichiers du jeu, vérifie leur intégrité et lance le jeu avec une large gamme d'options de personnalisation.
+
+Le frontend est écrit en Svelte, le lanceur entier tient dans 9Mo et prend en charge Windows 7-11.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wombat.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wombat.mdx
new file mode 100644
index 00000000000..c431f691952
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/wombat.mdx
@@ -0,0 +1,10 @@
+# Wombat
+
+```mdx-code-block
+
+
+
+
+```
+
+[Wombat](https://github.com/rogchap/wombat) est un client gRPC multi-plateforme.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/ytd.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/ytd.mdx
new file mode 100644
index 00000000000..4f5bd993cb1
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/showcase/ytd.mdx
@@ -0,0 +1,10 @@
+# Ytd
+
+```mdx-code-block
+
+
+
+
+```
+
+[Ytd](https://github.com/marcio199226/ytd/tree/v2-wails) est une application pour télécharger des pistes depuis youtube, créer des listes de lecture hors ligne et les partager avec vos amis, vos amis seront en mesure de lire vos playlists ou de les télécharger pour l'écoute hors ligne, a un lecteur intégré.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/templates.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/templates.mdx
new file mode 100644
index 00000000000..6baf0941b8c
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/community/templates.mdx
@@ -0,0 +1,69 @@
+---
+sidebar_position: 1
+---
+
+# Modèles
+
+Cette page sert de liste pour les modèles supportés par la communauté. Veuillez soumettre une PR (cliquez sur `Modifier cette page` en bas) pour inclure vos modèles. Pour construire votre propre modèle, veuillez consulter le guide [Modèles](../guides/templates.mdx).
+
+Pour utiliser ces modèles, exécutez `wails init -n "Votre nom de projet" -t [le lien ci-dessous[@version]]`
+
+S'il n'y a pas de suffixe de version, la branche principale du modèle de code sera alors utilisé par défaut. S'il y a un suffixe de version, le modèle de code correspondant au tag de cette version sera utilisé.
+
+Exemple : `wails init -n "Votre nom de projet" -t https://github.com/misitebao/wails-template-vue`
+
+:::warning Attention
+
+**Le projet Wails n'entretient pas, et n'est pas responsable des modèles de tierces parties!**
+
+Si vous n'êtes pas sûr d'un modèle, inspectez `package.json` et `wails.json` pour savoir quels scripts sont exécutés et quels paquets sont installés.
+
+:::
+
+## Vue
+
+- [wails-template-vue](https://github.com/misitebao/wails-template-vue) - Modèle de Wails basé sur Vue (TypeScript intégré, thème sombre, internationalisation, routage de page unique, TailwindCSS)
+- [wails-vite-vue-ts](https://github.com/codydbentley/wails-vite-vue-ts) - Vue 3 TypeScript avec Vite (et instructions pour ajouter des fonctionnalités)
+- [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vue 3 TypeScript avec Vite, Vuex, Vue Router, Sass, et ESLint + Prettier
+- [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - Un modèle utilisant JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier)
+- [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - Un modèle utilisant TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, Composition API avec <script setup>)
+- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Modèle Wails basé sur Naive UI (Librairie de composants Vue 3)
+
+## Angular
+
+- [wails-template-angular](https://github.com/mateothegreat/wails-template-angular) - Modèle Angular 15+ prêt à être utilisé en production.
+- [wails-angular-template](https://github.com/TAINCER/wails-angular-template) - Angular avec TypeScript, Sass, rechargement à chaud, découpage dynamique de code et i18n
+
+## React
+
+- [wails-react-template](https://github.com/AlienRecall/wails-react-template) - Un modèle utilisant reactjs
+- [wails-react-template](https://github.com/flin7/wails-react-template) - Un modèle minimal pour React qui supporte le développement en direct
+- [wails-template-nextjs](https://github.com/LGiki/wails-template-nextjs) - Un modèle utilisant Next.js et TypeScript
+- [wails-vite-react-ts-tailwind-template](https://github.com/hotafrika/wails-vite-react-ts-tailwind-template) - Un modèle pour React + TypeScript + Vite + TailwindCSS
+- [wails-vite-react-ts-tailwind-shadcnui-template](https://github.com/Mahcks/wails-vite-react-tailwind-shadcnui-ts) - Un modèle avec Vite, React, TypeScript, TailwindCSS, et shadcn/ui
+
+## Svelte
+
+- [wails-svelte-template](https://github.com/raitonoberu/wails-svelte-template) - Un modèle utilisant Svelte
+- [wails-vite-svelte-template](https://github.com/BillBuilt/wails-vite-svelte-template) - Un modèle utilisant Svelte et Vite
+- [wails-vite-svelte-tailwind-template](https://github.com/BillBuilt/wails-vite-svelte-tailwind-template) - Un modèle utilisant Svelte et Vite avec TailwindCSS v3
+- [wails-svelte-tailwind-vite-template](https://github.com/PylotLight/wails-vite-svelte-tailwind-template/tree/master) - Un modèle mis à jour en utilisant Svelte v4.2.0 et Vite avec TailwindCSS v3.3.3
+- [wails-sveltekit-template](https://github.com/h8gi/wails-sveltekit-template) - Un modèle utilisant SvelteKit
+
+## Solid
+
+- [wails-template-vite-solid-ts](https://github.com/xijaja/wails-template-solid-ts) - Un modèle utilisant Solid + Ts + Vite
+- [wails-template-vite-solid-ts](https://github.com/xijaja/wails-template-solid-js) - Un modèle utilisant Solid + Js + Vite
+
+## Elm
+
+- [wails-elm-template](https://github.com/benjamin-thomas/wails-elm-template) - Développez votre application GUI avec de la programmation fonctionnelle et une configuration de développement en direct :tada: :rocket:
+- [wails-template-elm-tailwind](https://github.com/rnice01/wails-template-elm-tailwind) - Combine les puissances :muscle: d'Elm + Tailwind CSS + Wails ! Rechargement automatique pris en charge.
+
+## HTMX
+
+- [wails-htmx-templ-chi-tailwind](https://github.com/PylotLight/wails-hmtx-templ-template) - Utilisez une combinaison unique de htmx pour interactivité, et de templ pour créer des composants et des formes
+
+## Pure JavaScript (Vanilla)
+
+- [wails-pure-js-template](https://github.com/KiddoV/wails-pure-js-template) - Un modèle avec rien que du JavaScript, du HTML et du CSS de base
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/building.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/building.mdx
new file mode 100644
index 00000000000..eb43f4aae2c
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/building.mdx
@@ -0,0 +1,22 @@
+---
+sidebar_position: 6
+---
+
+# Compiler votre projet
+
+À partir du répertoire du projet, exécutez `wails build`. Cela compilera votre projet et sauvegardera le binaire prêt à la production dans le répertoire `build/bin`.
+
+Si vous exécutez le binaire, vous devriez voir l'application par défaut :
+
+```mdx-code-block
+
+
+
+
+```
+
+Pour plus de détails sur les options de compilation, veuillez vous référer à la [documentation du CLI](../reference/cli.mdx#build).
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/development.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/development.mdx
new file mode 100644
index 00000000000..307029141d4
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/development.mdx
@@ -0,0 +1,16 @@
+---
+sidebar_position: 5
+---
+
+# Développez votre application
+
+Vous pouvez exécuter votre application en mode développement en exécutant `wails dev` à partir du répertoire de votre projet. Cela fera les choses suivantes :
+
+- Construire votre application et l'exécuter
+- Lier votre code Go au frontend pour qu'il puisse être appelé à partir de JavaScript
+- En utilisant la puissance de [Vite](https://vitejs.dev/), surveillera les modifications dans vos fichiers Go et reconstruira / ré-exécutera en cas de changement
+- Mettra en place un [serveur web](http://localhost:34115) qui servira votre application via un navigateur. Cela vous permet d'utiliser les extensions de votre navigateur préféré. Vous pouvez même appeler votre code Go depuis la console
+
+Pour commencer, exécutez `wails dev` dans le répertoire du projet. Plus d'informations à ce sujet peuvent être trouvées [ici](../reference/cli.mdx#dev).
+
+Prochainement : Tutoriel
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/firstproject.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/firstproject.mdx
new file mode 100644
index 00000000000..383925af1e6
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/firstproject.mdx
@@ -0,0 +1,130 @@
+---
+sidebar_position: 2
+---
+
+# Créer un projet
+
+## Génération de projet
+
+Maintenant que le CLI est installé, vous pouvez générer un nouveau projet en utilisant la commande `wails init`.
+
+Choisissez votre framework favori :
+
+```mdx-code-block
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
+
+
+ Générer un projet Svelte utilisant JavaScript avec:
+
+ wails init -n myproject -t vanilla
+
+Si vous préférez TypeScript:
+
+ wails init -n myproject -t vanilla-ts
+
+
+
+```
+
+
+
+Il y a aussi [des modèles créés par la communauté](../community/templates.mdx) qui sont disponibles et qui offrent différentes possibilités.
+
+Pour voir les autres options disponibles, vous pouvez exécuter `wails init -help`. Plus de détails peuvent être trouvés dans la [documentation du CLI](../reference/cli.mdx#init).
+
+## Structure du projet
+
+Les projets Wails ont la structure suivante:
+
+```
+.
+├── build/
+│ ├── appicon.png
+│ ├── darwin/
+│ └── windows/
+├── frontend/
+├── go.mod
+├── go.sum
+├── main.go
+└── wails.json
+```
+
+### Récapitulatif de la structure du projet
+
+- `/main.go` - L'application principale
+- `/frontend/` - Fichiers de la partie frontend
+- `/build/` - Répertoire de construction du projet
+- `/build/appicon.png` - L'icône de l'application
+- `/build/darwin/` - Fichiers spécifiques pour Mac
+- `/build/windows/` - Fichiers spécifiques pour Windows
+- `/wails.json` - La configuration du projet
+- `/go.mod` - Le fichier du module Go
+- `/go.sum` - Le checksum du fichier du module Go
+
+Le répertoire `frontend` n'a rien de spécifique à Wails et n'importe quel outil de frontend peut être utilisé.
+
+Le répertoire `build` est utilisé pendant le processus de compilation. Ces fichiers peuvent être mis à jour pour personnaliser vos builds. Si fichiers sont supprimés du répertoire de compilation, les versions par défaut seront régénérées.
+
+Le nom du module par défaut dans `go.mod` est "changeme". Vous devriez changer cela pour quelque chose de plus approprié.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/installation.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/installation.mdx
new file mode 100644
index 00000000000..86ffde34bde
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/gettingstarted/installation.mdx
@@ -0,0 +1,90 @@
+---
+sidebar_position: 1
+---
+
+# Installation
+
+## Plates-formes Prises en charge
+
+- Windows 10/11 AMD64/ARM64
+- MacOS 10.13+ AMD64
+- MacOS 11.0+ ARM64
+- Linux AMD64/ARM64
+
+## Dépendances
+
+Wails a un certain nombre de dépendances communes qui sont nécessaires avant l'installation :
+
+- Go 1.18+
+- NPM (Node 15+)
+
+### Go
+
+Télécharger Go à partir de la [Page de téléchargement](https://go.dev/dl/).
+
+Assurez-vous que vous suivez les instructions officielles de [l'installation de Go](https://go.dev/doc/install). Vous devrez également vous assurer que votre variable d'environnement `PATH` inclut également le chemin vers votre répertoire `~/go/bin`. Redémarrez votre terminal et effectuez les vérifications suivantes :
+
+- Vérifiez que Go est installé correctement : `go version`
+- Vérifiez que "~/go/bin" est dans votre variable PATH : `echo $PATH | grep go/bin`
+
+### NPM
+
+Téléchargez le NPM à partir de la [page de téléchargement de Node](https://nodejs.org/en/download/). Il est préférable d'utiliser la dernière version car c'est avec celle-là que nous effectuons nos tests.
+
+Exécutez `npm --version` pour vérifier.
+
+## Dépendances spécifiques aux plateformes
+
+Vous devrez également installer des dépendances spécifiques liés à la plateforme que vous utilisez :
+
+```mdx-code-block
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
+
+
+ Wails a besoin que les outils de command line xocde soient installés. Cela peut être fait
+ en exécutant xcode-select --install.
+
+
+ Wails a besoin que WebView2 runtime soit installé. Certaines installations de Windows auront déjà installé cette fonctionnalité. Vous pouvez vérifier en utilisant la commande wails doctor.
+
+
+ Linux a besoin de gcc comme outil de compilation en plus de libgtk3 et libwebkit. Plutôt que de lister une tonne de commandes pour différentes distributions, Wails peut essayer de déterminer ce que sont les commandes d'installation pour votre distribution. Exécutez wails doctor après l'installation pour voir de quelles dépendances vous avez besoin. Si votre gestionnaire de distribution/paquet n'est pas pris en charge, veuillez consulter le guide Ajouter une distribution Linux.
+
+
+```
+
+## Dépendances optionnelles
+
+- [UPX](https://upx.github.io/) pour compresser vos applications.
+- [NSIS](https://wails.io/docs/guides/windows-installer/) pour générer des installateurs Windows.
+
+## Installer Wails
+
+Exécutez `go go install github.com/wailsapp/wails/v2/cmd/wails@latest` pour installer le CLI.
+
+Note: Si vous obtenez une erreur similaire à ceci:
+
+```shell
+....\Go\pkg\mod\github.com\wailsapp\wails\v2@v2.1.0\pkg\templates\templates.go:28:12: pattern all:ides/*: no matching files found
+```
+vérifiez que vous avez installé Go 1.18+ :
+```shell
+go version
+```
+
+## Vérification du système
+
+Exécuter `wails doctor` qui vérifiera si vous avez les bonnes dépendances installées. Si ce n'est pas le cas, il vous conseillera sur ce qui manque et vous aidera à corriger tout problème.
+
+## La commande `wails` semble manquer ?
+
+Si votre système signale que la commande `wails` est manquante, assurez-vous que vous avez suivi le guide d'installation correctement. Normalement, cela signifie que le répertoire `go/bin` du répertoire racine de votre utilisateur n'est pas dans la variable d'environnement `PATH` . Vous devrez également normalement fermer et réouvrir toutes les commandes ouvertes afin que les modifications apportées à l'environnement par l'installateur soient reflétées dans l'invite de commande.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/angular.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/angular.mdx
new file mode 100644
index 00000000000..1fe2f199ffe
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/angular.mdx
@@ -0,0 +1,14 @@
+# Angular
+
+Bien que Wails n'ait pas de modèle Angular, il est possible d'utiliser Angular avec Wails.
+
+## Dev Mode
+
+Pour que le mode développeur fonctionne avec Angular, vous devez ajouter ce qui suit à votre fichier `wails.json`:
+
+```json
+ "frontend:build": "npx ng build",
+ "frontend:install": "npm install",
+ "frontend:dev:watcher": "npx ng serve",
+ "frontend:dev:serverUrl": "http://localhost:4200",
+```
\ No newline at end of file
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/application-development.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/application-development.mdx
new file mode 100644
index 00000000000..411853fd6f1
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/application-development.mdx
@@ -0,0 +1,215 @@
+# Développement d'applications
+
+Il n'y a pas de règles gravées dans le marbre pour le développement d'applications avec Wails, mais il y a quelques lignes directrices de base.
+
+## Configuration de l'application
+
+Le modèle utilisé par défaut défini que `main.go` est utilisé pour configurer et démarrer l'application, tandis que `app.go` est utilisé pour définir la logique de l'application.
+
+Le fichier `app.go` va définir une structure qui a 2 méthodes qui agissent comme crochets dans l'application principale:
+
+```go title="app.go"
+type App struct {
+ ctx context.Context
+}
+
+func NewApp() *App {
+ return &App{}
+}
+
+func (a *App) startup(ctx context.Context) {
+ a.ctx = ctx
+}
+
+func (a *App) shutdown(ctx context.Context) {
+}
+```
+
+- La méthode startup est appelée d-s que Wails a donné les ressources nécessaires et qu'il est dans un bon état pour créer les ressources, mettre en place les event listeners et tout ce dont l'application peut avoir besoin pour démarrer. Il est donné un `context.Context` qui est généralement sauvegardé dans un champ struct. Ce contexte est nécessaire pour appeler le [runtime](../reference/runtime/intro.mdx). Si cette méthode renvoie une erreur, l'application se fermera. En mode développement, l'erreur sera affichée dans la console.
+
+- La méthode d'arrêt sera appelée par Wails à la fin du processus d'arrêt. C'est un bon endroit pour vider la mémoire et effectuer toutes les tâches d'arrêt.
+
+Le fichier `main.go` consiste généralement en un seul appel à `wails.Run()`, qui accepte la configuration de l'application. Le modèle utilisé par les templates fait qu'avant l'appel à `wails.Run()`, une instance du struct que l'on a définie dans `app.go` est créée et instanciée dans une variable appelée `app`. Cette configuration est l'endroit où nous ajoutons nos callbacks :
+
+```go {3,9,10} title="main.go"
+func main() {
+
+ app := NewApp()
+
+ err := wails.Run(&options.App{
+ Title: "My App",
+ Width: 800,
+ Height: 600,
+ OnStartup: app.startup,
+ OnShutdown: app.shutdown,
+ })
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+```
+
+Plus d'informations sur les crochets du cycle de vie des applications peuvent être trouvées [ici](../howdoesitwork.mdx#application-lifecycle-callbacks).
+
+## Méthodes de liaison
+
+Il est probable que vous vouliez appeler les méthodes Go depuis le frontend. Cela se fait normalement en ajoutant des méthodes publiques à le struct déjà défini dans `app.go`:
+
+```go {16-18} title="app.go"
+type App struct {
+ ctx context.Context
+}
+
+func NewApp() *App {
+ return &App{}
+}
+
+func (a *App) startup(ctx context.Context) {
+ a.ctx = ctx
+}
+
+func (a *App) shutdown(ctx context.Context) {
+}
+
+func (a *App) Greet(name string) string {
+ return fmt.Sprintf("Hello %s!", name)
+}
+```
+
+Dans la configuration principale de l'application, le paramètre `Bind` est l'endroit où nous pouvons dire à Wails ce que nous voulons lier :
+
+```go {11-13} title="main.go"
+func main() {
+
+ app := NewApp()
+
+ err := wails.Run(&options.App{
+ Title: "My App",
+ Width: 800,
+ Height: 600,
+ OnStartup: app.startup,
+ OnShutdown: app.shutdown,
+ Bind: []interface{}{
+ app,
+ },
+ })
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+```
+
+Cela liera toutes les méthodes publiques de notre structure `App` (cela ne liera jamais les méthodes de démarrage et d'arrêt du système).
+
+### Traiter avec le contexte lors de la liaison de plusieurs structures
+
+Si vous voulez lier des méthodes pour des structures multiples, mais que vous voulez que chaque struct conserve une référence au contexte pour que vous puissiez utiliser les fonctions d'exécution... Un bon choix est de passer le contexte de la méthode `OnStartup` à vos instances struct :
+
+```go
+func main() {
+
+ app := NewApp()
+ otherStruct := NewOtherStruct()
+
+ err := wails.Run(&options.App{
+ Title: "My App",
+ Width: 800,
+ Height: 600,
+ OnStartup: func(ctx context.Context){
+ app.SetContext(ctx)
+ otherStruct.SetContext(ctx)
+ },
+ OnShutdown: app.shutdown,
+ Bind: []interface{}{
+ app,
+ otherStruct
+ },
+ })
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+```
+
+Plus d'informations à sur Binding peuvent être trouvées [ici](../howdoesitwork.mdx#method-binding).
+
+## Menu de l’application
+
+Wails prend en charge l'ajout d'un menu à votre application. Ceci est fait en passant un [Menu](../reference/menus.mdx#menu) structuré à la configuration de l'application. Il est courant d'utiliser une méthode qui renvoie un Menu, et encore plus courant pour que cela soit une méthode sur la struct de l'`app` qui soit utilisée pour les hooks du cycle de vie.
+
+```go {11} title="main.go"
+func main() {
+
+ app := NewApp()
+
+ err := wails.Run(&options.App{
+ Title: "My App",
+ Width: 800,
+ Height: 600,
+ OnStartup: app.startup,
+ OnShutdown: app.shutdown,
+ Menu: app.menu(),
+ Bind: []interface{}{
+ app,
+ },
+ })
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+```
+
+## Ressources
+
+La grande chose à propos de la façon dont Wails v2 gère les ressources pour le frontend, est que ce n'est pas le cas! La seule chose que vous devez donner à Wails est un `embed.FS`. C'est à vous de décider comment vous y arrivez. Vous pouvez utiliser les fichiers html/css/js vanilla comme dans le modèle vanilla. Vous pourriez avoir un système de compilation compliqué, peu importe.
+
+Quand la commande `wails dev` est exécutée, elle vérifiera le fichier de projet `wails.json` à la racine du projet. Il y a 2 clés dans le fichier du projet qui sont lues :
+
+- "frontend:install"
+- "frontend:build"
+
+Le premier, si fourni, sera exécuté dans le répertoire `frontend` pour installer les modules. Le second, si fourni, sera exécuté dans le répertoire `frontend` pour construire le projet frontend.
+
+Si ces 2 clés ne sont pas fournies, alors Wails ne fait absolument rien avec le frontend. Il n'attend que `embed.FS`.
+
+### AssetsHandler
+
+Une application Wails v2 peut éventuellement définir un `http.Handler` dans `options.app`, qui permet de se connecter à l'AssetServer pour créer des fichiers à la volée ou traiter les requêtes POST/PUT. Les requêtes GET sont toujours traitées d'abord par le `assets` FS. Si le FS ne trouve pas le fichier demandé, la requête sera transmise au `http.Handler`. Toute requête autre que GET sera traitée directement par le `AssetsHandler` si spécifié. Il est également possible d'utiliser le `AssetsHandler` uniquement en spécifiant `nil` dans l'option `Assets`.
+
+## Serveur de développement embarqué
+
+Exécuter `wails dev` démarrera le serveur de développement intégré qui démarrera un observateur de fichiers dans votre répertoire de projet. Par par défaut, si un fichier change, wails vérifie s'il s'agit d'un fichier d'application (par défaut: `.go`, configurable avec l'option `-e`). Si c'est le cas, il reconstruira votre application et la relancera. Si le fichier modifié se trouvait dans les actifs, il lancera un rechargement après un court laps de temps.
+
+Le serveur de développement utilise une technique appelée "debouncing", ce qui signifie qu'il ne se recharge pas tout de suite, comme il peut y avoir plusieurs fichiers modifiés en un court laps de temps. Lorsqu'un déclencheur se produit, il attend un temps défini avant d'émettre un rechargement. Si un autre déclencheur se produit, le temps d'attente se réinitialise avant un prochain rechargement. Par défaut, cette période est définie à `100ms`. Si cette valeur ne fonctionne pas pour votre projet, elle peut être configurée en utilisant l'option `-debounce`. Si elle est utilisée, cette valeur sera enregistrée dans la configuration de votre projet et deviendra la valeur par défaut.
+
+## Serveur de développement externe
+
+Certains frameworks sont fournis avec leur propre serveur de rechargement en direct, cependant ils ne seront pas en mesure de tirer parti des liaisons Wails Go. Dans ce scénario, il est préférable d'exécuter un script qui va surveiller le projet dans dossier build, dossier que Wails surveille aussi. Pour un exemple, voir le modèle svelte par défaut qui utilise [rollup](https://rollupjs.org/guide/en/).
+
+### Créer une application React
+
+Le processus pour créer un projet Reactest un peu plus compliqué. Afin de prendre en charge le rechargement du frontend en direct, la configuration suivante doit être ajoutée à votre `wails.json`:
+
+```json
+ "frontend:dev:watcher": "yarn start",
+ "frontend:dev:serverUrl": "http://localhost:3000",
+```
+
+La commande `frontend:dev:watcher` démarrera le serveur de développement React (hébergé sur le port `3000` typiquement). La commande `frontend:dev:serverUrl` demande ensuite à Wails d'exposer les ressources depuis le serveur de développement lors du chargement du frontend, plutôt que depuis le dossier de construction. En plus de ce qui précède, le fichier `index.html` doit être mis à jour avec les éléments suivants :
+
+```html
+
+
+
+
+
+```
+
+Ceci est nécessaire, car la commande watcher qui reconstruit le frontend empêche Wails de les injecter. Ça contourne le problème en assurant les scripts sont toujours injectés. Avec cette configuration, `wails dev` peut être exécuté, ce qui construira le frontend et le backend de manière appropriée avec le rechargement à chaud activé. De plus, lorsque vous accédez à l'application à partir d'un navigateur, les outils de développement de React peuvent maintenant être utilisés sur une version non minifiée de l'application pour le débogage. Enfin, pour des compilations plus rapides, `wails dev -s` peut être exécuté pour passer la construction par défaut du frontend par Wails car c'est une étape inutile.
+
+## Module Go
+
+Les modèles Wails par défaut génèrent un fichier `go.mod` qui contient le nom de module "changeme". Vous devriez changer ceci pour quelque chose de plus approprié après la génération du projet.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/crossplatform-build.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/crossplatform-build.mdx
new file mode 100644
index 00000000000..fd81a974d04
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/crossplatform-build.mdx
@@ -0,0 +1,66 @@
+# Crossplatform build with Github Actions
+
+To build a Wails project for all the available platforms, you need to create an application build for each operating system. One effective method to achieve this is by utilizing GitHub Actions.
+
+An action that facilitates building a Wails app is available at:
+https://github.com/dAppServer/wails-build-action
+
+In case the existing action doesn't fulfill your requirements, you can select only the necessary steps from the source:
+https://github.com/dAppServer/wails-build-action/blob/main/action.yml
+
+Below is a comprehensive example that demonstrates building an app upon the creation of a new Git tag and subsequently uploading it to the Actions artifacts:
+
+```yaml
+name: Wails build
+
+on:
+ push:
+ tags:
+ # Match any new tag
+ - '*'
+
+env:
+ # Necessary for most environments as build failure can occur due to OOM issues
+ NODE_OPTIONS: "--max-old-space-size=4096"
+
+jobs:
+ build:
+ strategy:
+ # Failure in one platform build won't impact the others
+ fail-fast: false
+ matrix:
+ build:
+ - name: 'App'
+ platform: 'linux/amd64'
+ os: 'ubuntu-latest'
+ - name: 'App'
+ platform: 'windows/amd64'
+ os: 'windows-latest'
+ - name: 'App'
+ platform: 'darwin/universal'
+ os: 'macos-latest'
+
+ runs-on: ${{ matrix.build.os }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Build wails
+ uses: dAppServer/wails-build-action@v2.2
+ id: build
+ with:
+ build-name: ${{ matrix.build.name }}
+ build-platform: ${{ matrix.build.platform }}
+ package: false
+ go-version: '1.20'
+```
+
+This example offers opportunities for various enhancements, including:
+
+- Caching dependencies
+- Code signing
+- Uploading to platforms like S3, Supbase, etc.
+- Injecting secrets as environment variables
+- Utilizing environment variables as build variables (such as version variable extracted from the current Git tag)
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/custom-protocol-schemes.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/custom-protocol-schemes.mdx
new file mode 100644
index 00000000000..e86b651845d
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/custom-protocol-schemes.mdx
@@ -0,0 +1,204 @@
+# Custom Protocol Scheme association
+
+Custom Protocols feature allows you to associate specific custom protocol with your app so that when users open links with this protocol,
+your app is launched to handle them. This can be particularly useful to connect your desktop app with your web app.
+In this guide, we'll walk through the steps to implement custom protocols in Wails app.
+
+## Set Up Custom Protocol Schemes Association:
+
+To set up custom protocol, you need to modify your application's wails.json file.
+In "info" section add a "protocols" section specifying the protocols your app should be associated with.
+
+For example:
+
+```json
+{
+ "info": {
+ "protocols": [
+ {
+ "scheme": "myapp",
+ "description": "My App Protocol",
+ "role": "Editor"
+ }
+ ]
+ }
+}
+```
+
+| Property | Description |
+| :---------- | :------------------------------------------------------------------------------------ |
+| scheme | Custom Protocol scheme. e.g. myapp |
+| description | Windows-only. The description. |
+| role | macOS-only. The app’s role with respect to the type. Corresponds to CFBundleTypeRole. |
+
+## Platform Specifics:
+
+### macOS
+
+When you open custom protocol with your app, the system will launch your app and call the `OnUrlOpen` function in your Wails app. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ Mac: &mac.Options{
+ OnUrlOpen: func(url string) { println(url) },
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+
+ if err != nil {
+ println("Error:", err.Error())
+ }
+}
+```
+
+### Windows
+
+On Windows Custom Protocol Schemes is supported only with NSIS installer. During installation, the installer will create a
+registry entry for your schemes. When you open url with your app, new instance of app is launched and url is passed
+as argument to your app. To handle this you should parse command line arguments in your app. Example:
+
+```go title="main.go"
+func main() {
+ argsWithoutProg := os.Args[1:]
+
+ if len(argsWithoutProg) != 0 {
+ println("launchArgs", argsWithoutProg)
+ }
+}
+```
+
+You also can enable single instance lock for your app. In this case, when you open url with your app, new instance of app is not launched
+and arguments are passed to already running instance. Check single instance lock guide for details. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ SingleInstanceLock: &options.SingleInstanceLock{
+ UniqueId: "e3984e08-28dc-4e3d-b70a-45e961589cdc",
+ OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+}
+```
+
+### Linux
+
+Currently, Wails doesn't support bundling for Linux. So, you need to create file associations manually.
+For example if you distribute your app as a .deb package, you can create file associations by adding required files in you bundle.
+You can use [nfpm](https://nfpm.goreleaser.com/) to create .deb package for your app.
+
+1. Create a .desktop file for your app and specify file associations there (note that `%u` is important in Exec). Example:
+
+```ini
+[Desktop Entry]
+Categories=Office
+Exec=/usr/bin/wails-open-file %u
+Icon=wails-open-file.png
+Name=wails-open-file
+Terminal=false
+Type=Application
+MimeType=x-scheme-handler/myapp;
+```
+
+2. Prepare postInstall/postRemove scripts for your package. Example:
+
+```sh
+# reload desktop database to load app in list of available
+update-desktop-database /usr/share/applications
+```
+
+3. Configure nfpm to use your scripts and files. Example:
+
+```yaml
+name: "wails-open-file"
+arch: "arm64"
+platform: "linux"
+version: "1.0.0"
+section: "default"
+priority: "extra"
+maintainer: "FooBarCorp "
+description: "Sample Package"
+vendor: "FooBarCorp"
+homepage: "http://example.com"
+license: "MIT"
+contents:
+- src: ../bin/wails-open-file
+ dst: /usr/bin/wails-open-file
+- src: ./main.desktop
+ dst: /usr/share/applications/wails-open-file.desktop
+- src: ../appicon.svg
+ dst: /usr/share/icons/hicolor/scalable/apps/wails-open-file.svg
+# copy icons to Yaru theme as well. For some reason Ubuntu didn't pick up fileicons from hicolor theme
+- src: ../appicon.svg
+ dst: /usr/share/icons/Yaru/scalable/apps/wails-open-file.svg
+scripts:
+ postinstall: ./postInstall.sh
+ postremove: ./postRemove.sh
+```
+
+6. Build your .deb package using nfpm:
+
+```sh
+nfpm pkg --packager deb --target .
+```
+
+7. Now when your package is installed, your app will be associated with custom protocol scheme. When you open url with your app,
+ new instance of app is launched and file path is passed as argument to your app.
+ To handle this you should parse command line arguments in your app. Example:
+
+```go title="main.go"
+func main() {
+ argsWithoutProg := os.Args[1:]
+
+ if len(argsWithoutProg) != 0 {
+ println("launchArgs", argsWithoutProg)
+ }
+}
+```
+
+You also can enable single instance lock for your app. In this case, when you open url with your app, new instance of app is not launched
+and arguments are passed to already running instance. Check single instance lock guide for details. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ SingleInstanceLock: &options.SingleInstanceLock{
+ UniqueId: "e3984e08-28dc-4e3d-b70a-45e961589cdc",
+ OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+}
+```
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/dynamic-assets.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/dynamic-assets.mdx
new file mode 100644
index 00000000000..97f81432dc2
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/dynamic-assets.mdx
@@ -0,0 +1,136 @@
+# Ressources dynamiques
+
+Si vous voulez charger ou générer des ressources pour votre frontend de manière dynamique, vous pouvez y parvenir en utilisant l'option [AssetsHandler](../reference/options#assetshandler). Le AssetsHandler est un générique`http.Handler` qui sera appelé pour toute requête non GET sur le serveur d'assets et pour les requêtes GET qui ne peuvent pas être servies car l'asset n'est pas trouvé.
+
+En installant un AssetsHandler personnalisé, vous pouvez servir vos propres ressources en utilisant un serveur de ressources personnalisé.
+
+## Exemple
+
+Dans notre exemple de projet, nous allons créer un gestionnaire de ressources simple qui chargera les fichiers à partir du disque:
+
+```go title=main.go {17-36,49}
+package main
+
+import (
+ "embed"
+ "fmt"
+ "github.com/wailsapp/wails/v2"
+ "github.com/wailsapp/wails/v2/pkg/options"
+ "github.com/wailsapp/wails/v2/pkg/options/assetserver"
+ "net/http"
+ "os"
+ "strings"
+)
+
+//go:embed all:frontend/dist
+var assets embed.FS
+
+type FileLoader struct {
+ http.Handler
+}
+
+func NewFileLoader() *FileLoader {
+ return &FileLoader{}
+}
+
+func (h *FileLoader) ServeHTTP(res http.ResponseWriter, req *http.Request) {
+ var err error
+ requestedFilename := strings.TrimPrefix(req.URL.Path, "/")
+ println("Requesting file:", requestedFilename)
+ fileData, err := os.ReadFile(requestedFilename)
+ if err != nil {
+ res.WriteHeader(http.StatusBadRequest)
+ res.Write([]byte(fmt.Sprintf("Could not load file %s", requestedFilename)))
+ }
+
+ res.Write(fileData)
+}
+
+func main() {
+ // Create an instance of the app structure
+ app := NewApp()
+
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "helloworld",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ Handler: NewFileLoader(),
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 255},
+ OnStartup: app.startup,
+ Bind: []interface{}{
+ app,
+ },
+ })
+
+ if err != nil {
+ println("Error:", err)
+ }
+}
+```
+
+Lorsque nous exécutons l'application en mode dev en utilisant `wails dev`, nous verrons la sortie suivante :
+
+```
+DEB | [ExternalAssetHandler] Loading 'http://localhost:3001/favicon.ico'
+DEB | [ExternalAssetHandler] Loading 'http://localhost:3001/favicon.ico' failed, using AssetHandler
+Requesting file: favicon.ico
+```
+
+Comme vous pouvez le voir, le gestionnaire d'actifs est appelé lorsque le serveur d'assets par défaut est incapable de servir le fichier `favicon.ico`.
+
+Si vous faites un clic droit sur l'application principale et sélectionnez "inspecter" pour afficher les devtools, vous pouvez tester cette fonctionnalité en tapant ce qui suit dans la console :
+
+```
+let response = await fetch('does-not-exist.txt');
+```
+
+Cela générera une erreur dans les devtools. Nous pouvons voir que l'erreur est ce que nous attendons est retourné par notre gestionnaire de ressources personnalisées :
+
+```mdx-code-block
+
+
+
+```
+
+Cependant, si nous demandons `go.mod`, nous verrons la sortie suivante :
+
+```mdx-code-block
+
+
+
+```
+
+Cette technique peut être utilisée pour charger des images directement dans la page. Si nous avons mis à jour notre modèle vanilla par défaut et a remplacé l'image du logo :
+
+```html
+
+```
+
+avec :
+
+```html
+
+```
+
+Nous verrions ensuite ce qui suit:
+
+```mdx-code-block
+
+
+
+```
+
+:::warning
+
+Exposer votre système de fichiers de cette manière est un risque de sécurité. Il est recommandé de gérer correctement l'accès à votre système de fichiers.
+
+:::
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/file-association.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/file-association.mdx
new file mode 100644
index 00000000000..167955b12d7
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/file-association.mdx
@@ -0,0 +1,244 @@
+# File Association
+
+File association feature allows you to associate specific file types with your app so that when users open those files,
+your app is launched to handle them. This can be particularly useful for text editors, image viewers, or any application
+that works with specific file formats. In this guide, we'll walk through the steps to implement file association in Wails app.
+
+## Set Up File Association:
+
+To set up file association, you need to modify your application's wails.json file.
+In "info" section add a "fileAssociations" section specifying the file types your app should be associated with.
+
+For example:
+
+```json
+{
+ "info": {
+ "fileAssociations": [
+ {
+ "ext": "wails",
+ "name": "Wails",
+ "description": "Wails Application File",
+ "iconName": "wailsFileIcon",
+ "role": "Editor"
+ },
+ {
+ "ext": "jpg",
+ "name": "JPEG",
+ "description": "Image File",
+ "iconName": "jpegFileIcon",
+ "role": "Editor"
+ }
+ ]
+ }
+}
+```
+
+| Property | Description |
+| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ext | The extension (minus the leading period). e.g. png |
+| name | The name. e.g. PNG File |
+| iconName | The icon name without extension. Icons should be located in build folder. Proper icons will be generated from .png file for both macOS and Windows |
+| description | Windows-only. The description. It is displayed on the `Type` column on Windows Explorer. |
+| role | macOS-only. The app’s role with respect to the type. Corresponds to CFBundleTypeRole. |
+
+## Platform Specifics:
+
+### macOS
+
+When you open file (or files) with your app, the system will launch your app and call the `OnFileOpen` function in your Wails app. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ Mac: &mac.Options{
+ OnFileOpen: func(filePaths []string) { println(filestring) },
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+
+ if err != nil {
+ println("Error:", err.Error())
+ }
+}
+```
+
+### Windows
+
+On Windows file association is supported only with NSIS installer. During installation, the installer will create a
+registry entry for your file associations. When you open file with your app, new instance of app is launched and file path is passed
+as argument to your app. To handle this you should parse command line arguments in your app. Example:
+
+```go title="main.go"
+func main() {
+ argsWithoutProg := os.Args[1:]
+
+ if len(argsWithoutProg) != 0 {
+ println("launchArgs", argsWithoutProg)
+ }
+}
+```
+
+You also can enable single instance lock for your app. In this case, when you open file with your app, new instance of app is not launched
+and arguments are passed to already running instance. Check single instance lock guide for details. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ SingleInstanceLock: &options.SingleInstanceLock{
+ UniqueId: "e3984e08-28dc-4e3d-b70a-45e961589cdc",
+ OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+}
+```
+
+### Linux
+
+Currently, Wails doesn't support bundling for Linux. So, you need to create file associations manually.
+For example if you distribute your app as a .deb package, you can create file associations by adding required files in you bundle.
+You can use [nfpm](https://nfpm.goreleaser.com/) to create .deb package for your app.
+
+1. Create a .desktop file for your app and specify file associations there. Example:
+
+```ini
+[Desktop Entry]
+Categories=Office
+Exec=/usr/bin/wails-open-file %u
+Icon=wails-open-file.png
+Name=wails-open-file
+Terminal=false
+Type=Application
+MimeType=application/x-wails;application/x-test
+```
+
+2. Create mime types file. Example:
+
+```xml
+
+
+
+ Wails Application File
+
+
+
+```
+
+3. Create icons for your file types. SVG icons are recommended.
+4. Prepare postInstall/postRemove scripts for your package. Example:
+
+```sh
+# reload mime types to register file associations
+update-mime-database /usr/share/mime
+# reload desktop database to load app in list of available
+update-desktop-database /usr/share/applications
+# update icons
+update-icon-caches /usr/share/icons/*
+```
+
+5. Configure nfpm to use your scripts and files. Example:
+
+```yaml
+name: "wails-open-file"
+arch: "arm64"
+platform: "linux"
+version: "1.0.0"
+section: "default"
+priority: "extra"
+maintainer: "FooBarCorp "
+description: "Sample Package"
+vendor: "FooBarCorp"
+homepage: "http://example.com"
+license: "MIT"
+contents:
+- src: ../bin/wails-open-file
+ dst: /usr/bin/wails-open-file
+- src: ./main.desktop
+ dst: /usr/share/applications/wails-open-file.desktop
+- src: ./application-wails-mime.xml
+ dst: /usr/share/mime/packages/application-x-wails.xml
+- src: ./application-test-mime.xml
+ dst: /usr/share/mime/packages/application-x-test.xml
+- src: ../appicon.svg
+ dst: /usr/share/icons/hicolor/scalable/apps/wails-open-file.svg
+- src: ../wailsFileIcon.svg
+ dst: /usr/share/icons/hicolor/scalable/mimetypes/application-x-wails.svg
+- src: ../testFileIcon.svg
+ dst: /usr/share/icons/hicolor/scalable/mimetypes/application-x-test.svg
+# copy icons to Yaru theme as well. For some reason Ubuntu didn't pick up fileicons from hicolor theme
+- src: ../appicon.svg
+ dst: /usr/share/icons/Yaru/scalable/apps/wails-open-file.svg
+- src: ../wailsFileIcon.svg
+ dst: /usr/share/icons/Yaru/scalable/mimetypes/application-x-wails.svg
+- src: ../testFileIcon.svg
+ dst: /usr/share/icons/Yaru/scalable/mimetypes/application-x-test.svg
+scripts:
+ postinstall: ./postInstall.sh
+ postremove: ./postRemove.sh
+```
+
+6. Build your .deb package using nfpm:
+
+```sh
+nfpm pkg --packager deb --target .
+```
+
+7. Now when your package is installed, your app will be associated with specified file types. When you open file with your app,
+ new instance of app is launched and file path is passed as argument to your app.
+ To handle this you should parse command line arguments in your app. Example:
+
+```go title="main.go"
+func main() {
+ argsWithoutProg := os.Args[1:]
+
+ if len(argsWithoutProg) != 0 {
+ println("launchArgs", argsWithoutProg)
+ }
+}
+```
+
+You also can enable single instance lock for your app. In this case, when you open file with your app, new instance of app is not launched
+and arguments are passed to already running instance. Check single instance lock guide for details. Example:
+
+```go title="main.go"
+func main() {
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "wails-open-file",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
+ SingleInstanceLock: &options.SingleInstanceLock{
+ UniqueId: "e3984e08-28dc-4e3d-b70a-45e961589cdc",
+ OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
+ },
+ Bind: []interface{}{
+ app,
+ },
+ })
+}
+```
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frameless.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frameless.mdx
new file mode 100644
index 00000000000..bbeb338f1b6
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frameless.mdx
@@ -0,0 +1,87 @@
+# Applications sans cadre
+
+Wails prend en charge la création d'applications qui n'ont pas de cadres. Ceci peut être réalisé en utilisant le champ [frameless](../reference/options.mdx#frameless) dans [Application Options](../reference/options.mdx#application-options).
+
+Wails offre une solution simple pour faire glisser la fenêtre: N'importe quel élément HTML qui a le style CSS `--wails-draggable:drag` agira comme une "poignée de glisser". Cette propriété s'applique à tous les éléments enfants. Si vous devez indiquer qu'un élément imbriqué ne doit pas glisser, alors utilisez l'attribut '--wails-draggable:no-drag' sur cet élément.
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Pour certains projets, l'utilisation d'une variable CSS peut ne pas être possible en raison du style dynamique. Dans ce cas, vous pouvez utiliser les options `CSSDragProperty` et `CSSDragValue` pour définir une propriété et une valeur qui seront utilisées pour indiquer régions glissables :
+
+```go title=main.go
+package main
+
+import (
+ "embed"
+
+ "github.com/wailsapp/wails/v2"
+ "github.com/wailsapp/wails/v2/pkg/options"
+ "github.com/wailsapp/wails/v2/pkg/options/assetserver"
+)
+
+//go:embed all:frontend/dist
+var assets embed.FS
+
+func main() {
+ // Create an instance of the app structure
+ app := NewApp()
+
+ // Create application with options
+ err := wails.Run(&options.App{
+ Title: "alwaysontop",
+ Width: 1024,
+ Height: 768,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ Frameless: true,
+ CSSDragProperty: "widows",
+ CSSDragValue: "1",
+ Bind: []interface{}{
+ app,
+ },
+ })
+
+ if err != nil {
+ println("Error:", err)
+ }
+}
+```
+
+```html title=index.html
+
+
+
+
+
+ alwaysontop
+
+
+
+
+
+
+```
+
+:::info Plein écran
+
+Si vous autorisez votre application à être en plein écran, cette fonctionnalité de glissement sera désactivée.
+
+:::
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frontend.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frontend.mdx
new file mode 100644
index 00000000000..ea101019ad8
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/frontend.mdx
@@ -0,0 +1,72 @@
+# Frontend
+
+## Injection de script
+
+Quand Wails sert votre fichier `index.html`, par défaut, il injectera 2 entrées de script dans la balise `` pour charger `/wails/ipc.js` et `/wails/runtime.js`. Ces fichiers installent respectivement les bindings et les runtime.
+
+Le code ci-dessous montre où ils sont injectés par défaut :
+
+```html
+
+
+ injection example
+
+
+
+
+
+
+
+
Please enter your name below 👇
+
+
+
+
+
+
+
+
+```
+
+### Remplacer l'injection de script par défaut
+
+Pour fournir plus de flexibilité aux développeurs, il y a une balise meta qui peut être utilisée pour personnaliser ce comportement:
+
+```html
+
+```
+
+Les options sont les suivantes :
+
+| Valeur | Description |
+| ------------------- | -------------------------------------------------------------- |
+| noautoinjectruntime | Pour désactiver l'injection automatique de `/wails/runtime.js` |
+| noautoinjectipc | Pour désactiver l'injection automatique de `/wails/ipc.js` |
+| noautoinject | Pour désactiver l'injection automatique de tous les scripts |
+
+Plusieurs options peuvent être utilisées à condition qu'elles soient séparées par des virgules.
+
+Ce code est parfaitement valide et fonctionne de la même manière que la version avec l'auto-injection :
+
+```html
+
+
+ injection example
+
+
+
+
+
+
+
Please enter your name below 👇
+
+
+
+
+
+
+
+
+
+
+```
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/ides.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/ides.mdx
new file mode 100644
index 00000000000..f35b2f57f77
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/ides.mdx
@@ -0,0 +1,127 @@
+# IDEs
+
+Wails vise à fournir une grande expérience de développement. À cet effet, nous supportons maintenant la génération d'une configuration spécifique IDE pour fournir une configuration plus souple du projet.
+
+Actuellement, nous prenons en charge [Visual Studio Code](https://code.visualstudio.com/) mais nous visons à prendre en charge d'autres IDE comme Goland.
+
+## Visual Studio Code
+
+```mdx-code-block
+
+
+
+```
+
+Lors de la génération d'un projet en utilisant l'option `-ide vscode` , les fichiers IDE seront créés à côté des autres fichiers du projet. Ces fichiers sont placés dans le répertoire `.vscode` et fournissent la configuration correcte pour déboguer votre application.
+
+Les 2 fichiers générés sont `tasks.json` et `launch.json`. Ci-dessous se trouvent les fichiers générés par défaut :
+
+```json title="tasks.json"
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "type": "shell",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "command": "go",
+ "args": [
+ "build",
+ "-tags",
+ "dev",
+ "-gcflags",
+ "all=-N -l",
+ "-o",
+ "build/bin/myproject.exe"
+ ]
+ }
+ ]
+}
+```
+
+```json title="launch.json"
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Wails: Debug myproject",
+ "type": "go",
+ "request": "launch",
+ "mode": "exec",
+ "program": "${workspaceFolder}/build/bin/myproject.exe",
+ "preLaunchTask": "build",
+ "cwd": "${workspaceFolder}",
+ "env": {}
+ }
+ ]
+}
+```
+
+### Configuration des étapes d'installation et de construction
+
+Le fichier `tasks.json` est simple pour le projet par défaut car il n'y a pas d'étapes `npm install` ou `npm build` nécessaire. Pour les projets qui ont une étape de construction en frontend comme avec Svelte, nous devrions modifier `tasks.json` pour ajouter les étapes d'installation et de construction suivantes :
+
+```json title="tasks.json"
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "npm install",
+ "type": "npm",
+ "script": "install",
+ "options": {
+ "cwd": "${workspaceFolder}/frontend"
+ },
+ "presentation": {
+ "clear": true,
+ "panel": "shared",
+ "showReuseMessage": false
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "npm run build",
+ "type": "npm",
+ "script": "build",
+ "options": {
+ "cwd": "${workspaceFolder}/frontend"
+ },
+ "presentation": {
+ "clear": true,
+ "panel": "shared",
+ "showReuseMessage": false
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "build",
+ "type": "shell",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "command": "go",
+ "args": [
+ "build",
+ "-tags",
+ "dev",
+ "-gcflags",
+ "all=-N -l",
+ "-o",
+ "build/bin/vscode.exe"
+ ],
+ "dependsOn": ["npm install", "npm run build"]
+ }
+ ]
+}
+```
+
+:::info Améliorations futures
+
+Dans le futur, nous espérons générer un `tasks.json` qui inclut les étapes d'installation et de construction automatiquement.
+
+:::
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux-distro-support.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux-distro-support.mdx
new file mode 100644
index 00000000000..6bd2002fce7
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux-distro-support.mdx
@@ -0,0 +1,103 @@
+# Prise en charge des distributions Linux
+
+## Vue d'ensemble
+
+Wails offre le support de Linux, mais fournir des instructions d'installation pour toutes les distributions disponibles est une tâche impossible. À la place, Wails essaie de déterminer si les paquets dont vous avez besoin pour développer des applications sont disponibles via le gestionnaire de paquets de votre système. Actuellement, nous supportons les gestionnaires de paquets suivants :
+
+- apt
+- dnf
+- emerge
+- eopkg
+- nixpkgs
+- pacman
+- zypper
+
+## Ajout des noms de paquets
+
+Il peut y avoir des cas où votre distribution de linux utilise un des gestionnaires de paquets pris en charge mais le nom du paquet est différent. Par exemple, vous pouvez utiliser un dérivé Ubuntu, mais le nom du paquet pour gtk peut être différent. Wails tente de trouver le paquet correct en itérant une liste de noms de paquets. La liste des paquets est stockée dans un fichier spécifique dans le dossier `v2/internal/system/packagemanager` . Dans notre exemple, ce serait `v2/internal/system/packagemanager/apt.go`.
+
+Dans ce fichier, la liste des paquets est définie par la méthode `Packages()`:
+
+```go
+func (a *Apt) Packages() packagemap {
+ return packagemap{
+ "libgtk-3": []*Package{
+ {Name: "libgtk-3-dev", SystemPackage: true, Library: true},
+ },
+ "libwebkit": []*Package{
+ {Name: "libwebkit2gtk-4.0-dev", SystemPackage: true, Library: true},
+ },
+ "gcc": []*Package{
+ {Name: "build-essential", SystemPackage: true},
+ },
+ "pkg-config": []*Package{
+ {Name: "pkg-config", SystemPackage: true},
+ },
+ "npm": []*Package{
+ {Name: "npm", SystemPackage: true},
+ },
+ "docker": []*Package{
+ {Name: "docker.io", SystemPackage: true, Optional: true},
+ },
+ }
+}
+```
+
+Supposons que dans notre distribution linux, `libgtk-3` est empaqueté sous le nom `lib-gtk3-dev`. Nous pourrions ajouter le support de ce paquet en ajoutant la ligne suivante :
+
+```go {5}
+func (a *Apt) Packages() packagemap {
+ return packagemap{
+ "libgtk-3": []*Package{
+ {Name: "libgtk-3-dev", SystemPackage: true, Library: true},
+ {Name: "lib-gtk3-dev", SystemPackage: true, Library: true},
+ },
+ "libwebkit": []*Package{
+ {Name: "libwebkit2gtk-4.0-dev", SystemPackage: true, Library: true},
+ },
+ "gcc": []*Package{
+ {Name: "build-essential", SystemPackage: true},
+ },
+ "pkg-config": []*Package{
+ {Name: "pkg-config", SystemPackage: true},
+ },
+ "npm": []*Package{
+ {Name: "npm", SystemPackage: true},
+ },
+ "docker": []*Package{
+ {Name: "docker.io", SystemPackage: true, Optional: true},
+ },
+ }
+}
+```
+
+## Ajout de nouveaux gestionnaires de paquets
+
+Pour ajouter un nouveau gestionnaire de paquets, effectuez les étapes suivantes :
+
+- Créez un nouveau fichier dans `v2/internal/system/packagemanager` appelé `.go`, où `` est le nom du gestionnaire de paquets.
+- Définit une structure conforme à l'interface du gestionnaire de paquets définie dans `pm.go`:
+
+```go
+type PackageManager interface {
+ Name() string
+ Packages() packagemap
+ PackageInstalled(*Package) (bool, error)
+ PackageAvailable(*Package) (bool, error)
+ InstallCommand(*Package) string
+}
+```
+
+- `Name()` doit retourner le nom du gestionnaire de paquets
+- `Packages()` doit retourner une `packagemap`, qui fournit des noms de fichiers candidats pour les dépendances
+- `PackageInstalled()` devrait retourner `true` si le paquet donné est installé
+- `PackageAvailable()` devrait retourner `true` si le paquet donné n'est pas installé mais disponible pour l'installation
+- `InstallCommand()` doit retourner la commande exacte pour installer le nom du paquet donné
+
+Jetez un coup d'œil au code des autres gestionnaires de paquets pour avoir une idée de comment cela fonctionne.
+
+:::info Rappel
+
+Si vous ajoutez le support d'un nouveau gestionnaire de paquets, n'oubliez pas de mettre également à jour cette page !
+
+:::
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux.mdx
new file mode 100644
index 00000000000..19e45313a44
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/linux.mdx
@@ -0,0 +1,18 @@
+# Linux
+
+Cette page a divers guides liés au développement d'applications Wails pour Linux.
+
+## Le tag vidéo ne déclenche pas l'événement "terminé"
+
+Lorsque vous utilisez un tag vidéo, l'événement "terminé" n'est pas déclenché lorsque la vidéo est finie. Ceci est un bogue dans WebkitGTK, cependant vous pouvez utiliser le contournement suivant pour le corriger :
+
+```js
+videoTag.addEventListener("timeupdate", (event) => {
+ if (event.target.duration - event.target.currentTime < 0.2) {
+ let ended = new Event("ended");
+ event.target.dispatchEvent(ended);
+ }
+});
+```
+
+Source : [Lyimmi](https://github.com/Lyimmi) sur le [forum de discussion](https://github.com/wailsapp/wails/issues/1729#issuecomment-1212291275)
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/local-development.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/local-development.mdx
new file mode 100644
index 00000000000..0c3878d7888
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/local-development.mdx
@@ -0,0 +1,55 @@
+# Développement local
+
+## Vue d'ensemble
+
+Wails est en développement constant et les nouvelles versions sont régulièrement "tagguées". Cela se produit généralement lorsque tout le nouveau code sur `master` a été testé et confirmé fonctionnel. Si vous avez besoin d'un correctif ou d'une fonctionnalité qui ne l'a pas encore fait pour une version, il est possible d'utiliser la dernière version "non validée" en utilisant les étapes suivantes :
+
+- `git clone https://github.com/wailsapp/wails`
+- `cd wails/v2/cmd/wails`
+- `go install`
+
+REMARQUE : Le répertoire dans lequel vous avez cloné le projet sera maintenant appelé "clonedir".
+
+Le CLI de Wails sera maintenant à la dernière version.
+
+### Mise à jour du projet
+
+Pour mettre à jour vos projets pour utiliser la dernière version de la bibliothèque Wails, mettez à jour le fichier `go.mod` et assurez-vous que la ligne suivante est en bas du fichier :
+
+`replace github.com/wailsapp/wails/v2 => `
+
+Exemple:
+
+Sur Windows: `replace github.com/wailsapp/wails/v2 => C:\Users\leaan\Documents\wails-v2-beta\wails\v2`
+
+Sur 'nix: `replace github.com/wailsapp/wails/v2 => /home/me/projects/wails/v2`
+
+Pour revenir à une version stable, exécutez :
+
+`go install github.com/wailsapp/wails/v2/cmd/wails@latest`
+
+## Tester une branche
+
+Si vous voulez tester une branche, suivez les instructions ci-dessus, mais assurez-vous de bien vous mettre sur la branche que vous voulez tester avant d'installer :
+
+- `git clone https://github.com/wailsapp/wails`
+- `cd wails`
+- `git checkout -b branch-to-test --track origin/branch-to-test`
+- `cd v2/cmd/wails`
+- `go install`
+
+Assurez-vous de [mettre à jour votre projet](#updating-your-project) comme décrit ci-dessus.
+
+## Tester une PR
+
+Si vous voulez tester une PR, suivez les instructions ci-dessus, mais assurez-vous de récupérer la PR et d'être sur la branche de la PR avant de faire l'installation. Veuillez remplacer `[IDofThePR]` par l'ID de la PR affiché sur github.com:
+
+- `git clone https://github.com/wailsapp/wails`
+- `cd wails`
+- `git fetch -u origin pull/[IDofThePR]/head:test/pr-[IDofThePR]`
+- `git checkout test/pr-[IDofThePR]`
+- `git reset --hard HEAD`
+- `cd v2/cmd/wails`
+- `go install`
+
+Assurez-vous de [mettre à jour votre projet](#updating-your-project) comme décrit ci-dessus.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/mac-appstore.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/mac-appstore.mdx
new file mode 100644
index 00000000000..fe040591634
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/mac-appstore.mdx
@@ -0,0 +1,97 @@
+# Guide pour Mac App Store
+
+Cette page donne un bref aperçu de la façon de soumettre votre application Wails au Mac App Store.
+
+## Prérequis
+
+- Vous devrez avoir un compte développeur Apple. Veuillez trouver plus d'informations sur le site [Apple Developer Program](https://developer.apple.com/support/compare-memberships/)
+- Vous aurez besoin que vos certificats, identifiants et applications soient créés sur le portail développeur. Plus d'infos sur ce sujet ci-dessous
+- L'utilitaire Xcode devront être installés sur votre machine locale pour être utilisé en ligne de commandes
+
+#### Créer des certificats et des identifiants
+
+1. Allez sur votre [Compte Développeur Apple](https://developer.apple.com/account/)
+2. Sous `Certificats, Identificateurs & Profils`, cliquez sur `Identifiants` et Enregistrez un nouvel identifiant d'application. Utiliser le format (com.example.app)
+3. Sous la même page, cliquez sur `Certificats` et générez de nouveaux certificats pour la distribution de l'App Store Mac. Téléchargez-les et importez les certificats dans votre trousseau sur votre machine locale.
+
+#### Créer une soumission d'application
+
+1. Allez sur le [site de connexion de l'App Store](https://appstoreconnect.apple.com/apps)
+2. Enregistrez une nouvelle application et liez l'ID du lot que vous avez créé à l'étape précédente
+3. Remplissez votre application avec les bonnes captures d'écran, descriptions, etc. selon les besoins d'Apple
+4. Créer une nouvelle version de votre application
+
+#### Create Provisioning Profile
+1. Go to the [Apple Developer Profiles](https://developer.apple.com/account/resources/profiles/list) page
+2. Add a new provisioning profile for Mac App Store Distribution
+3. Set the Profile Type as Mac and select the App ID for the application created above
+4. Select the Mac App Distribution certificate
+5. Name the Provisioning Profile embedded and download the created profile.
+
+## Processus Mac App Store
+
+#### Activation du Sandbox Apple
+
+Les applications soumises au Mac App Store doivent tourner dans la [Sandbox](https://developer.apple.com/app-sandboxing/) Apple. Vous devez créer un fichier `entitlements.plist` pour que cela fonctionne. La recommandation est de créer ce fichier sous ce chemin `{PROJECT_DIR}/build/darwin/entitlements.plist`.
+
+**Example de fichier Entitlements**
+
+Ceci est un exemple du fichier entitlements de l'application [RiftShare](https://github.com/achhabra2/riftshare). Pour référence, veuillez mettre dans les droits requis par votre application. Reportez-vous à [ce site](https://developer.apple.com/documentation/bundleresources/entitlements) pour plus d'informations. You will need to replace the Team ID and Application Name with the ones you registered above.
+
+```xml title="entitlements.plist"
+
+
+
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.network.client
+
+ com.apple.security.network.server
+
+ com.apple.security.files.user-selected.read-write
+
+ com.apple.security.files.downloads.read-write
+
+ com.apple.application-identifier
+ TEAM_ID.APP_NAME
+ com.apple.developer.team-identifier
+ TEAM_ID
+
+
+```
+
+**Add the Embedded Provisioning Profile** The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile.
+
+#### Construire et signer le package de l'application
+
+Ce qui suit est un exemple de script pour construire et signer votre application pour la soumission de l'App Store Mac. Il suppose que vous exécutez le script depuis la racine de votre projet.
+
+Notez que les certificats pour signer l'application et l'installateur sont différents. Veuillez vous assurer que les deux sont importés dans votre trousseau. Trouvez les chaînes de caractères dans Trousseau et insérez-les ci-dessous. Remplissez le nom de votre certificat et le nom de l'application ci-dessous. Exécuter le script suivant générera un fichier `app.pkg` signé à la racine de votre application.
+
+```bash title="macappstore-build.sh"
+#!/bin/bash
+
+APP_CERTIFICATE="3rd Party Mac Developer Application: YOUR NAME (CODE)"
+PKG_CERTIFICATE="3rd Party Mac Developer Installer: YOUR NAME (CODE)"
+APP_NAME="YourApp"
+
+wails build -platform darwin/universal -clean
+
+cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents"
+
+codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app
+
+productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg
+```
+
+#### Télécharger l'application
+
+Vous devrez télécharger le fichier de package généré et l'associer à votre application avant de pouvoir le soumettre pour vérification.
+
+1. Téléchargez l' [App Transporter](https://apps.apple.com/us/app/transporter/id1450874784) depuis le Mac App Store
+2. Ouvrez-le et connectez-vous avec votre identifiant Apple
+3. Cliquez sur le signe + et sélectionnez le fichier `APP_NAME.pkg` que vous avez généré à l'étape précédente. Télécharger le
+4. Retournez sur le site [App Store Connect](https://appstoreconnect.apple.com/apps) et retournez dans la soumission de votre application. Sélectionnez la version que vous êtes prêt à mettre à disposition sur l'App Store. Sous `Build` sélectionnez le package que vous avez téléchargé via Transporter.
+
+C'est terminé ! Vous pouvez maintenant utiliser le site pour soumettre votre application pour vérification. Après quelques jours ouvrables si tout se passe bien, vous devriez voir votre application en direct sur le Mac App Store.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/manual-builds.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/manual-builds.mdx
new file mode 100644
index 00000000000..98457d19cc9
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/manual-builds.mdx
@@ -0,0 +1,95 @@
+# Compilations manuelles
+
+Le CLI Wails fait beaucoup de travail pour le projet, mais il est parfois souhaitable de construire manuellement votre projet. Ce document discutera des différentes opérations que fait le CLI et des différentes façons d'y parvenir.
+
+## Processus de construction
+
+Lorsque `wails build` ou `wails dev` sont utilisés, le CLI Wails effectue un processus de construction commun:
+
+ - Installation des dépendances frontend
+ - Construire le projet frontend
+ - Générer des ressources de construction
+ - Compiler l'application
+ - [optionnel] Compresser l'application
+
+### Installation des dépendances frontend
+
+#### Étapes CLI
+
+- Si l'option `-s` est donné, cette étape est ignorée
+- Vérifie `wails.json` pour voir s'il y a une commande install dans `frontend:install`
+- S'il n'y en a pas, il saute cette étape
+- Si le fichier existe, vérifie si `package.json` existe dans le répertoire du frontend. S'il n'existe pas, il saute cette étape
+- Un hash MD5 est générée à partir du contenu du fichier `package.json`
+- Il vérifie l'existence de `package.json.md5` et, s'il existe, compare son contenu (une somme MD5) avec celui généré pour voir si le contenu a changé. S'ils sont les mêmes, cette étape est ignorée
+- Si `package.json.md5` n'existe pas, il le crée en utilisant la somme MD5 générée
+- Si une compilation est maintenant requise, ou si `node_modules` n'existe pas, ou si l'option `-f` est donnée, la commande install est exécutée dans le répertoire frontend
+
+#### Étapes manuelles
+
+Cette étape peut être réalisée à partir de la ligne de commande ou d'un script avec `npm install`.
+
+### Construire le projet frontend
+
+#### CLI Wails
+
+- Si l'option `-s` est donné, cette étape est ignorée
+- Vérifie `wails.json` pour voir s'il y a une commande de construction dans la clé `frontend:build`
+- S'il n'y en a pas, il saute cette étape
+- S'il existe, il est exécuté dans le répertoire du frontend
+
+#### Étapes manuelles
+
+Cette étape peut être réalisée à partir de la ligne de commande ou d'un script avec `npm run build` ou quel que soit le script de construction du frontend.
+
+### Générer les ressources
+
+#### CLI Wails
+
+- Si l'option `-nopackage` est activée, cette étape est ignorée
+- Si le fichier `build/appicon.png` n'existe pas, un fichier par défaut est créé
+- Pour Windows, voir [ Empaquetage pour Windows](#windows)
+- Si `build/windows/icon.ico` n'existe pas, il la créera à partir de l'image `build/appicon.png`.
+
+##### Windows
+
+- If `build/windows/icon.ico` does not exist, it will create it from `build/appicon.png` using icon sizes of 256, 128, 64, 48, 32 and 16. This is done using [winicon](https://github.com/leaanthony/winicon).
+- If the `build/windows/.manifest` file does not exist, it creates it from a default version.
+- Compiles the application as a production build (above)
+- Uses [winres](https://github.com/tc-hib/winres) to bundle the icon and manifest into a `.syso` file ready for linking.
+
+#### Étapes manuelles
+
+- Create `icon.ico` using the [winicon](https://github.com/leaanthony/winicon) CLI tool (or any other tool).
+- Create / Update a `.manifest` file for your application
+- Use the [winres CLI](https://github.com/tc-hib/go-winres) to generate a `.syso` file.
+
+### Compiler l'application
+
+#### CLI Wails
+
+- If the `-clean` flag is provided, the `build` directory is deleted and recreated
+- For `wails dev`, the following default Go flags are used: `-tags dev -gcflags "all=-N -l"`
+- For `wails build`, the following default Go flags are used: `-tags desktop,production -ldflags "-w -s"`
+ - On Windows, `-ldflags "-w -h -H windowsgui"`
+- Additional tags passed to the CLI using `-tags` are added to the defaults
+- Additional ldflags passed to the CLI using `-ldflags` are added to the defaults
+- The `-o` flag is passed through
+- The Go compiler specified by `-compiler` will be used for compilation
+
+#### Manual steps
+
+- For dev build, the minimum command would be: `go build -tags dev -gcflags "all=-N -l"`
+- For production build, the minimum command would be: `go build -tags desktop,production -ldflags "-w -s -H windowsgui"`
+- Ensure that you compile in the same directory as the `.syso` file
+
+### Compress application
+
+#### CLI Wails
+
+- If the `-upx` flag has been given, the `upx` program will be run to compress the application with the default settings
+- If `-upxflags` is also passed, these flags are used instead of the default ones
+
+#### Manual steps
+
+- Run `upx [flags]` manually to compress the application.
diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/migrating.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/migrating.mdx
new file mode 100644
index 00000000000..7123cbe6b60
--- /dev/null
+++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.9.0/guides/migrating.mdx
@@ -0,0 +1,191 @@
+# Migrating from v1
+
+## Overview
+
+Wails v2 is a significant change from v1. This document aims to highlight the changes and the steps in migrating an existing project.
+
+### Creating the Application
+
+In v1, the main application is created using `wails.CreateApp`, bindings are added with `app.Bind`, then the application is run using `app.Run()`.
+
+Example:
+
+```go title="v1"
+ app := wails.CreateApp(&wails.AppConfig{
+ Title: "MyApp",
+ Width: 1024,
+ Height: 768,
+ JS: js,
+ CSS: css,
+ Colour: "#131313",
+ })
+ app.Bind(basic)
+ app.Run()
+```
+
+In v2, there is just a single method, `wails.Run()`, that accepts [application options](../reference/options.mdx#application-options).
+
+```go title="v2"
+ err := wails.Run(&options.App{
+ Title: "MyApp",
+ Width: 800,
+ Height: 600,
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ Bind: []interface{}{
+ basic,
+ },
+ })
+```
+
+### Binding
+
+In v1, it was possible to bind both arbitrary functions and structs. In v2, this has been simplified to only binding structs. The struct instances that were previously passed to the `Bind()` method in v1, are now specified in the `Bind` field of the [application options](../reference/options.mdx#application-options):
+
+```go title="v1"
+ app := wails.CreateApp(/* options */)
+ app.Bind(basic)
+```
+
+```go title="v2"
+ err := wails.Run(&options.App{
+ /* other options */
+ Bind: []interface{}{
+ basic,
+ },
+ })
+```
+
+In v1, bound methods were available to the frontend at `window.backend`. This has changed to `window.go`.``
+
+### Application Lifecycle
+
+In v1, there were 2 special methods in a bound struct: `WailsInit()` and `WailsShutdown()`. These have been replaced with 3 lifecycle hooks as part of the [application options](../reference/options.mdx#application-options):
+
+- [OnStartup](../reference/options.mdx#onstartup)
+- [OnShutdown](../reference/options.mdx#onshutdown)
+- [OnDomReady](../reference/options.mdx#ondomready)
+
+Note: [OnDomReady](../reference/options.mdx#ondomready) replaces the `wails:ready` system event in v1.
+
+These methods can be standard functions, but a common practice is to have them part of a struct:
+
+```go title="v2"
+ basic := NewBasicApp()
+ err := wails.Run(&options.App{
+ /* Other Options */
+ OnStartup: basic.startup,
+ OnShutdown: basic.shutdown,
+ OnDomReady: basic.domready,
+ })
+...
+type Basic struct {
+ ctx context.Context
+}
+func (b *Basic) startup(ctx context.Context) {
+ b.ctx = ctx
+}
+...
+```
+
+### Runtime
+
+The runtime in v2 is much richer than v1 with support for menus, window manipulation and better dialogs. The signature of the methods has changed slightly - please refer the the [Runtime Reference](../reference/runtime/intro.mdx).
+
+In v1, the [runtime](../reference/runtime/intro.mdx) was available via a struct passed to `WailsInit()`. In v2, the runtime has been moved out to its own package. Each method in the runtime takes the `context.Context` that is passed to the [OnStartup](../reference/options.mdx#onstartup) method.
+
+```go title="Runtime Example"
+package main
+
+import "github.com/wailsapp/wails/v2/pkg/runtime"
+
+type Basic struct {
+ ctx context.Context
+}
+
+// startup is called at application startup
+func (a *App) startup(ctx context.Context) {
+ a.ctx = ctx
+ runtime.LogInfo(ctx, "Application Startup called!")
+}
+
+```
+
+### Assets
+
+The _biggest_ change in v2 is how assets are handled.
+
+In v1, assets were passed via 2 application options:
+
+- `JS` - The application's JavaScript
+- `CSS` - The application's CSS
+
+This meant that the responsibility of generating a single JS and CSS file was on the developer. This essentially required the use of complicated packers such as webpack.
+
+In v2, Wails makes no assumptions about your frontend assets, just like a webserver. All of your application assets are passed to the application options as an `embed.FS`.
+
+**This means there is no requirement to bundle your assets, encode images as Base64 or attempt the dark art of bundler configuration to use custom fonts**.
+
+At startup, Wails will scan the given `embed.FS` for `index.html` and use its location as the root path for all the other application assets - just like a webserver would.
+
+Example: An application has the following project layout. All final assets are placed in the `frontend/dist` directory:
+
+```shell
+.
+├── build/
+├── frontend/
+│ └── dist/
+│ ├── index.html
+│ ├── main.js
+│ ├── main.css
+│ └── logo.svg
+├── main.go
+└── wails.json
+```
+
+Those assets may be used by the application by simply creating an `embed.FS`:
+
+```go title="Assets Example"
+//go:embed all:frontend/dist
+var assets embed.FS
+
+func main() {
+ err := wails.Run(&options.App{
+ /* Other Options */
+ AssetServer: &assetserver.Options{
+ Assets: assets,
+ },
+ })
+}
+```
+
+Of course, bundlers can be used if you wish to. The only requirement is to pass the final application assets directory to Wails using an `embed.FS` in the `Assets` key of the [application options](../reference/options.mdx#application-options).
+
+### Project Configuration
+
+In v1, the project configuration was stored in the `project.json` file in the project root. In v2, the project configuration is stored in the `wails.json` file in the project root.
+
+The format of the file is slightly different. Here is a comparison:
+
+
+
+| v1 | v2 | Notes |
+| ------------------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| name | name | |
+| description | | Removed |
+| author / name | author / name | |
+| author / email | author / email | |
+| version | version | |
+| binaryname | outputfilename | Changed |
+| frontend / dir | | Removed |
+| frontend / install | frontend:install | Changed |
+| frontend / build | frontend:build | Changed |
+| frontend / bridge | | Removed |
+| frontend / serve | | Removed |
+| tags | | Removed |
+| | wailsjsdir | The directory to generate wailsjs modules |
+| | assetdir | The directory of the compiled frontend assets for `dev` mode. This is normally inferred and could be left empty. |
+| | reloaddirs | Comma separated list of additional directories to watch for changes and to trigger reloads in `dev` mode. This is only needed for some more advanced asset configurations. |
+
+