aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorGravatar Xavier Hahn <xavier.hahn@gmail.com>2019-11-03 17:02:44 +0100
committerGravatar James Young <18669334+noroadsleft@users.noreply.github.com>2019-11-03 08:02:44 -0800
commitbed98091aa4e2b555e092760d49856e38f2c9657 (patch)
treea576d9f069b042cc1cf04efe4dfc74b953aa9873 /docs
parent1249da4e8eab0be8618a5ea6a718eb757684f244 (diff)
downloadqmk_firmware-bed98091aa4e2b555e092760d49856e38f2c9657.tar.gz
French translation - FAQ section (#6995)
* Translated faq.md and added all other files (copy from English) * Translated driver_installation_zadig.md in French * Translated faq_build.md in French * Translated faq_debug in French * Translateed faq_general.md in French * Translated first part of faq_keymap.md * Renamed docs/fr-FR folder to docs/fr-fr * Finished translation of faq_keymap.md * Update faq_build.md * Review (#3) * Review * Update docs/fr-fr/faq_keymap.md * Update docs/fr-fr/faq_debug.md * Fix some PR comments Co-Authored-By: Noan Mousy <4sstylz@protonmail.ch> Co-Authored-By: Wermeille Bastien <bastien.wermeille@gmail.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/fr-fr/ChangeLog/20190830.md (renamed from docs/fr-FR/ChangeLog/20190830.md)0
-rw-r--r--docs/fr-fr/README.md (renamed from docs/fr-FR/README.md)0
-rw-r--r--docs/fr-fr/_summary.md (renamed from docs/fr-FR/_summary.md)46
-rw-r--r--docs/fr-fr/breaking_changes.md (renamed from docs/fr-FR/breaking_changes.md)0
-rw-r--r--docs/fr-fr/cli.md (renamed from docs/fr-FR/cli.md)0
-rw-r--r--docs/fr-fr/cli_configuration.md (renamed from docs/fr-FR/cli_configuration.md)0
-rw-r--r--docs/fr-fr/contributing.md (renamed from docs/fr-FR/contributing.md)0
-rw-r--r--docs/fr-fr/driver_installation_zadig.md46
-rw-r--r--docs/fr-fr/faq.md6
-rw-r--r--docs/fr-fr/faq_build.md182
-rw-r--r--docs/fr-fr/faq_debug.md236
-rw-r--r--docs/fr-fr/faq_general.md16
-rw-r--r--docs/fr-fr/faq_keymap.md226
-rw-r--r--docs/fr-fr/flashing.md (renamed from docs/fr-FR/flashing.md)0
-rw-r--r--docs/fr-fr/getting_started_getting_help.md (renamed from docs/fr-FR/getting_started_getting_help.md)0
-rw-r--r--docs/fr-fr/getting_started_github.md (renamed from docs/fr-FR/getting_started_github.md)0
-rw-r--r--docs/fr-fr/getting_started_introduction.md (renamed from docs/fr-FR/getting_started_introduction.md)0
-rw-r--r--docs/fr-fr/newbs.md (renamed from docs/fr-FR/newbs.md)0
-rw-r--r--docs/fr-fr/newbs_best_practices.md (renamed from docs/fr-FR/newbs_best_practices.md)0
-rw-r--r--docs/fr-fr/newbs_building_firmware.md (renamed from docs/fr-FR/newbs_building_firmware.md)0
-rw-r--r--docs/fr-fr/newbs_building_firmware_configurator.md (renamed from docs/fr-FR/newbs_building_firmware_configurator.md)0
-rw-r--r--docs/fr-fr/newbs_flashing.md (renamed from docs/fr-FR/newbs_flashing.md)0
-rw-r--r--docs/fr-fr/newbs_getting_started.md (renamed from docs/fr-FR/newbs_getting_started.md)0
-rw-r--r--docs/fr-fr/newbs_learn_more_resources.md (renamed from docs/fr-FR/newbs_learn_more_resources.md)0
-rw-r--r--docs/fr-fr/newbs_testing_debugging.md (renamed from docs/fr-FR/newbs_testing_debugging.md)0
25 files changed, 735 insertions, 23 deletions
diff --git a/docs/fr-FR/ChangeLog/20190830.md b/docs/fr-fr/ChangeLog/20190830.md
index cb223be31..cb223be31 100644
--- a/docs/fr-FR/ChangeLog/20190830.md
+++ b/docs/fr-fr/ChangeLog/20190830.md
diff --git a/docs/fr-FR/README.md b/docs/fr-fr/README.md
index d3591554b..d3591554b 100644
--- a/docs/fr-FR/README.md
+++ b/docs/fr-fr/README.md
diff --git a/docs/fr-FR/_summary.md b/docs/fr-fr/_summary.md
index 16ae82d06..eef486176 100644
--- a/docs/fr-FR/_summary.md
+++ b/docs/fr-fr/_summary.md
@@ -1,32 +1,32 @@
**En Français**
-* [Guide pour débutant complet](fr-FR/newbs.md)
- * [Pour débuter](fr-FR/newbs_getting_started.md)
- * [Compiler son premier firmware](fr-FR/newbs_building_firmware.md)
- * [Flasher le Firmware](fr-FR/newbs_flashing.md)
- * [Test et Débuggage](fr-FR/newbs_testing_debugging.md)
- * [Bonnes pratiques Git](fr-FR/newbs_best_practices.md)
- * [Ressources d'apprentissage](fr-FR/newbs_learn_more_resources.md)
+* [Guide pour débutant complet](fr-fr/newbs.md)
+ * [Pour débuter](fr-fr/newbs_getting_started.md)
+ * [Compiler son premier firmware](fr-fr/newbs_building_firmware.md)
+ * [Flasher le Firmware](fr-fr/newbs_flashing.md)
+ * [Test et Débuggage](fr-fr/newbs_testing_debugging.md)
+ * [Bonnes pratiques Git](fr-fr/newbs_best_practices.md)
+ * [Ressources d'apprentissage](fr-fr/newbs_learn_more_resources.md)
-* [Les bases de QMK](fr-FR/README.md)
- * [Indroduction à QMK](fr-FR/getting_started_introduction.md)
- * [QMK CLI](fr-FR/cli.md)
- * [Configuration de la CLI QMK](fr-FR/cli_configuration.md)
- * [Contribuer à QMK](fr-FR/contributing.md)
- * [Comment utiliser GitHub](fr-FR/getting_started_github.md)
- * [Trouver de l'aide](fr-FR/getting_started_getting_help.md)
+* [Les bases de QMK](fr-fr/README.md)
+ * [Indroduction à QMK](fr-fr/getting_started_introduction.md)
+ * [QMK CLI](fr-fr/cli.md)
+ * [Configuration de la CLI QMK](fr-fr/cli_configuration.md)
+ * [Contribuer à QMK](fr-fr/contributing.md)
+ * [Comment utiliser GitHub](fr-fr/getting_started_github.md)
+ * [Trouver de l'aide](fr-fr/getting_started_getting_help.md)
-* [Breaking changes](fr-FR/breaking_changes.md)
- * [30 août 2019](fr-FR/ChangeLog/20190830.md)
+* [Breaking changes](fr-fr/breaking_changes.md)
+ * [30 août 2019](fr-fr/ChangeLog/20190830.md)
-**En Anglais**
+* [FAQ](fr-fr/faq.md)
+ * [FAQ Générale](fr-fr/faq_general.md)
+ * [Compiler QMK](fr-fr/faq_build.md)
+ * [Débugguer / Dépanner QMK](fr-fr/faq_debug.md)
+ * [Keymap / Disposition](fr-fr/faq_keymap.md)
+ * [Installer les drivers avec Zadig](fr-fr/driver_installation_zadig.md)
-* [FAQ](faq.md)
- * [FAQ Générale](faq_general.md)
- * [Compiler QMK](faq_build.md)
- * [Débugguer / Dépanner QMK](faq_debug.md)
- * [Keymap / Disposition](faq_keymap.md)
- * [Installer les drivers avec Zadig](driver_installation_zadig.md)
+**En Anglais**
* Guides détaillés
* [Installation des outils de compilation](getting_started_build_tools.md)
diff --git a/docs/fr-FR/breaking_changes.md b/docs/fr-fr/breaking_changes.md
index 53bbb2212..53bbb2212 100644
--- a/docs/fr-FR/breaking_changes.md
+++ b/docs/fr-fr/breaking_changes.md
diff --git a/docs/fr-FR/cli.md b/docs/fr-fr/cli.md
index 428153645..428153645 100644
--- a/docs/fr-FR/cli.md
+++ b/docs/fr-fr/cli.md
diff --git a/docs/fr-FR/cli_configuration.md b/docs/fr-fr/cli_configuration.md
index 3eed1e0e9..3eed1e0e9 100644
--- a/docs/fr-FR/cli_configuration.md
+++ b/docs/fr-fr/cli_configuration.md
diff --git a/docs/fr-FR/contributing.md b/docs/fr-fr/contributing.md
index 0092d664e..0092d664e 100644
--- a/docs/fr-FR/contributing.md
+++ b/docs/fr-fr/contributing.md
diff --git a/docs/fr-fr/driver_installation_zadig.md b/docs/fr-fr/driver_installation_zadig.md
new file mode 100644
index 000000000..9e7d77b6d
--- /dev/null
+++ b/docs/fr-fr/driver_installation_zadig.md
@@ -0,0 +1,46 @@
+# Installation du driver du bootloader avec Zadig
+
+Vous n’aurez pas besoin de pilote particulier pour utiliser un clavier QMK. En effet, QMK se présente à l'ordinateur hôte comme un clavier HID standard et sera reconnu sans problème. Cependant vous aurez peut-être besoin d'un pilote pour flasher votre clavier avec Windows. En effet, quand vous redémarrerez votre clavier en mode bootloader, le périphérique que détectera Windows ne sera pas un clavier mais un périphérique bootloader.
+
+Il existe deux exceptions : le bootloader Caterina, qui se trouve en général sur les Pro Micros, et le bootloader Halfkay, livré avec les Teensy de PJRC. Ils apparaissent respectivement sous la forme d'un port série et d'un périphérique HID générique, ne nécessitant pas de pilote particulier.
+
+Nous vous recommandons d'utiliser l'utilitaire [Zadig](https://zadig.akeo.ie/). Si vous avez configuré votre environnement de développement avec Msys2 ou WSL, le script `qmk_install.sh` vous aura proposé l'installation des pilotes durant le processus.
+
+## Installation
+
+Passez votre clavier en mode bootloader, soit en appuyant sur le keycode `RESET` (qui peut se trouver dans un calque différent) ou en appuyant sur le bouton reset qui se trouve en général sous la board. Si votre clavier n'a aucune de ces options, essayez de le brancher en maintenant Escape ou Espace+`B` appuyés (voir la documentation de [Bootmagic](feature_bootmagic.md) pour plus de détails). Certaines boards utilisent [Command](feature_command.md) à la place de Bootmagic. Dans ce cas, vous pouvez entrer en mode bootloader en appuyant, à n'importe quel moment lorsque le clavier est branché, sur les combinaisons de touches Shift Gauche+Shift Droit+`B` ou Shift Gauche+Shift Droit+Escape.
+Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut : Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut : Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
+
+Pour mettre un clavier en mode bootloader avec USBaspLoader, appuyez sur le bouton `RESET` tout en maintenant le bouton `BOOT`. Vous pouvez aussi maintenir le bouton `BOOT` en branchant le câble USB.
+
+Zadig détectera automatiquement les périphériques en mode bootloader. Il se peut toutefois que vous deviez vérifier en passant par **Options → List All Devices**.
+
+
+ - Pour les claviers avec des MCUs Atmel AVR, le bootloader aura un nom similaire à `ATm32U4DFU`, et un Vendor ID `03EB`.
+ - Les bootloaders USBasp s'appelleront `USBasp`, avec un VID/PID `16C0:05DC`.
+ - Les claviers AVR flashé avec le bootloader QMK-DFU s'appelleront `<nom du clavier> Bootloader` et auront aussi le VID `03EB`.
+ - Pour la plupart des claviers ARM, ils s'appelleront `STM32 BOOTLOADER`, et auront un VID/PID `0483:DF11`.
+
+!> Si Zadig affiche certains de vos périphériques avec le driver `HidUsb`, votre clavier n'est probablement pas en mode bootloader. La flèche aura une couleur orange et vous aurez un message de confirmation vous demandant de modifier un pilote système. **Ne continuez pas!**
+
+Si la flèche apparaît en vert, sélectionnez le driver et appuyez sur le bouton **Install Driver**. Le driver `libusb-win32` devrait normalement fonctionner pour AVR, et `WinUSB` pour ARM. Si vous avez des problèmes pour flasher la board, essayez d'installer un pilote différent de la liste. Pour flasher un périphérique USBaspLoader en ligne de commande avec msys2, le driver `libusbk` est recommandé, sinon `libusb-win32` devrait fonctionner correctement si vous utilisez QMK Toolbox pour flasher.
+
+![Zadig montrant un driver de bootloader installé correctement](https://i.imgur.com/b8VgXzx.png)
+
+Finalement, débranchez et rebranchez le clavier afin de vous assurer que le nouveau pilote a bien été chargé. Si vous utilisez QMK Toolbox pour flasher, redémarrez-le aussi, il arrive qu'il n'arrive pas à détecter le changement de driver.
+
+## Récupérer l'installation du mauvais périphérique
+
+Si vous n'arrivez plus à saisir de texte avec le clavier, il est possible que vous ayez installé le driver sur le clavier au lieu du bootloader. Vous pouvez facilement vérifier ceci dans Zadig. Un clavier fonctionnel a le pilote `HidUsb` installé sur toutes ses interfaces :
+
+![Un clavier fonctionnel vu par Zadig](https://i.imgur.com/Hx0E5kC.png)
+
+Ouvrez le Gestionnaire de périphériques et cherchez un périphérique qui ressemble à votre clavier.
+
+![La board avec le mauvais driver installé, dans le Gestionnaire de périphériques](https://i.imgur.com/L3wvX8f.png)
+
+Cliquez dessus avec le bouton droit et sélectionner **Désinstaller le périphérique**. Faites bien attention à sélectionner **Supprimer le pilote pour ce périphérique** avant de valider.
+
+![Le dialogue Suppression de périphérique, avec la boîte "suppression de pilote" cochée](https://i.imgur.com/aEs2RuA.png)
+
+Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau !
diff --git a/docs/fr-fr/faq.md b/docs/fr-fr/faq.md
new file mode 100644
index 000000000..89576b3cc
--- /dev/null
+++ b/docs/fr-fr/faq.md
@@ -0,0 +1,6 @@
+# Foire Aux Questions
+
+* [FAQ Générale](faq_general.md)
+* [Construire ou Compiler QMK](faq_build.md)
+* [Débuguer et Dépanner QMK](faq_debug.md)
+* [Keymap (disposition)](faq_keymap.md)
diff --git a/docs/fr-fr/faq_build.md b/docs/fr-fr/faq_build.md
new file mode 100644
index 000000000..774bf6880
--- /dev/null
+++ b/docs/fr-fr/faq_build.md
@@ -0,0 +1,182 @@
+# Foire aux questions sur la compilation
+
+Cette page couvre les questions concernant la compilation de QMK. Si vous ne l'avez pas encore fait, vous devriez lire les guides [Configuration de l'environnement de build](getting_started_build_tools.md) et [Instructions pour Make](getting_started_make_guide.md).
+
+## Je ne peux pas programmer sous Linux
+
+Vous aurez besoin des permissions appropriées pour utiliser un périphérique. Pour les utilisateurs de Linux, référez-vous aux instructions concernant les règles `udev` ci-dessous. Si `udev` vous pose des problèmes, une alternative est d'utiliser la commande `sudo`. Si vous ne connaissez pas cette commande, référez-vous à son manuel d'utilisation en utilisant `man sudo` ou [regardez cette page](https://linux.die.net/man/8/sudo).
+
+Un exemple utilisant `sudo`, lorsque votre contrôleur est un ATMega32u4 :
+
+ $ sudo dfu-programmer atmega32u4 erase --force
+ $ sudo dfu-programmer atmega32u4 flash your.hex
+ $ sudo dfu-programmer atmega32u4 reset
+
+ou simplement :
+
+ $ sudo make <keyboard>:<keymap>:dfu
+
+Veuillez noter que lancer `make` avec `sudo` est généralement une **mauvaise** idée, et vous devriez préférer une des méthodes précédente, si possible.
+
+### Règles `udev` pour Linux
+
+Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes :
+
+```console
+sudo udevadm control --reload-rules
+sudo udevadm trigger
+```
+
+**/etc/udev/rules.d/50-atmel-dfu.rules:**
+```
+# Atmel ATMega32U4
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666"
+# Atmel USBKEY AT90USB1287
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666"
+# Atmel ATMega32U2
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666"
+```
+
+**/etc/udev/rules.d/52-tmk-keyboard.rules:**
+```
+# tmk keyboard products https://github.com/tmk/tmk_keyboard
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
+```
+
+**/etc/udev/rules.d/54-input-club-keyboard.rules:**
+
+```
+# Input Club keyboard bootloader
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
+```
+
+**/etc/udev/rules.d/55-catalina.rules:**
+```
+# ModemManager should ignore the following devices
+ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
+```
+
+**Note:** Le filtrage utilisant ModemManager fonctionnera uniquement si vous n'êtes pas en mode strict. Les commandes suivantes peuvent changer cette option :
+
+```console
+sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
+sudo systemctl daemon-reload
+sudo systemctl restart ModemManager
+```
+
+**/etc/udev/rules.d/56-dfu-util.rules:**
+
+```
+# stm32duino
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666"
+# Generic stm32
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
+```
+
+### Le périphérique sériel n'est pas détecté en mode bootloader sous Linux
+
+Assurez-vous que votre kernel ait un support approprié pour votre périphérique. Si votre périphérique utilise USB ACM, par exemple pour les Pro Micro (AtMega32u4), assurez-vous d'inclure `CONFIG_USB_ACM=y`. D'autres périphériques peuvent avoir besoin de `USB_SERIAL` et de ses sous-options.
+
+## Périphérique inconnu pour le bootloader DFU
+
+Les problèmes rencontrés lorsque l'on flash des claviers sous Windows sont, la plupart du temps, dus à une installation du mauvais pilote, ou un pilote manquant.
+
+Relancer le script d'installation de QMK (`./util/qmk_install.sh` situé dans répertoire `qmk_firmware`sous MSYS2 ou WSL) ou réinstaller la QMK Toolbox peut résoudre le problème. Une alternative est de télécharger et lancer manuellement le package [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer).
+
+Si vous rencontrez toujours des problèmes, essayez de télécharger et lancer Zadig. Voir [Installation du driver du bootloader avec Zadig](driver_installation_zadig.md) pour plus d'informations.
+
+## WINAVR est obsolète
+
+Il n'est plus recommandé et peut causer des problèmes. Voir [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
+
+## USB VID et PID
+
+Vous pouvez utiliser l'ID de votre choix en modifier `config.h`. Il y a peu de chance de conflit avec d'autres produits.
+
+La plupart des boards QMK utilisent `0xFEED` comme vendor ID. Vérifiez les autres claviers pour être sûr de choisir un Product ID unique.
+
+Étudiez aussi ce ticket
+https://github.com/tmk/tmk_keyboard/issues/150
+
+Vous pouvez acheter un VID:PID unique ici. Je ne pense pas que ce soit nécessaire pour un usage personnel.
+- http://www.obdev.at/products/vusb/license.html
+- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
+
+## Cortex: `cstddef: No such file or directory`
+
+Ce problème existait avec le GCC 4.8 d'Ubuntu 14.04, la solution a nécessité de mettre à jour vers 4.9 avec ce PPA.
+https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
+
+https://github.com/tmk/tmk_keyboard/issues/212
+https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
+https://developer.mbed.org/forum/mbed/topic/5205/
+
+## `clock_prescale_set` and `clock_div_1` Not Available
+
+Votre chaîne d'outils (Toolchain) est trop vieille pour supporter le MCU. Par exemple, WinAVR 20100110 ne supporte pas ATMega32u2.
+
+```
+Compiling C: ../../tmk_core/protocol/lufa/lufa.c
+avr-gcc -c -mmcu=atmega32u2 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_ENDPOINT -DBOOTLOADER_SIZE=4096 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_alps64/protocol/lufa/lufa.lst -I. -I../../tmk_core -I../../tmk_core/protocol/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_alps64_protocol_lufa_lufa.o.d ../../tmk_core/protocol/lufa/lufa.c -o obj_alps64/protocol/lufa/lufa.o
+../../tmk_core/protocol/lufa/lufa.c: In function 'setup_mcu':
+../../tmk_core/protocol/lufa/lufa.c:575: warning: implicit declaration of function 'clock_prescale_set'
+../../tmk_core/protocol/lufa/lufa.c:575: error: 'clock_div_1' undeclared (first use in this function)
+../../tmk_core/protocol/lufa/lufa.c:575: error: (Each undeclared identifier is reported only once
+../../tmk_core/protocol/lufa/lufa.c:575: error: for each function it appears in.)
+make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1
+```
+
+## BOOTLOADER_SIZE pour AVR
+
+Notez que la taille du bootloader pour les Teensy2.0++ est de 2048bytes. Quelques Makefiles peuvent contenir une erreur et avoir le mauvais commentaire.
+
+```
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 2048
+# Atmel DFU loader 4096 (TMK Alt Controller)
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=2048
+```
+
+## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` sous MacOS
+
+C'est un problème de mise à jour avec brew, causée par des liens symboliques (symlinks) dont dépend avr-gcc qui sont détruits.
+
+La solution est de supprimer et réinstaller tous les modules affectés.
+
+```
+brew rm avr-gcc
+brew rm dfu-programmer
+brew rm dfu-util
+brew rm gcc-arm-none-eabi
+brew rm avrdude
+brew install avr-gcc
+brew install dfu-programmer
+brew install dfu-util
+brew install gcc-arm-none-eabi
+brew install avrdude
+```
+
+### avr-gcc 8.1 et LUFA
+
+Si vous avez mis à jour votre avr-gcc au-dessus de la version 7, vous risquez de voir des erreurs impliquant LUA. Par exemple :
+
+`lib/lufa/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h:380:5: error: 'const' attribute on function returning 'void'`
+
+Pour le moment, vous devrez revenir à la version 7 de avr-gcc dans brew.
+
+```
+brew uninstall --force avr-gcc
+brew install avr-gcc@8
+brew link --force avr-gcc@8
+```
+
+### Je viens de flasher mon clavier et il ne fait rien/l'appui des touches n'est pas enregistré - c'est aussi un ARM(rev6 plank, clueboard 60, hs60v2, etc.) (Février 2019)
+
+A cause de la manière dont les EEPROM fonctionnent sur les puces ARM, les options sauvegardées peuvent ne plus être valides. Ceci affecte les calques par défaut et *peut*, sous certaines conditions que nous essayons encore de déterminer, rendre le clavier inutilisable. Réinitialiser l'EEPROM corrigera le problème.
+
+[Réinitialiser EEPROM sur Planck rev6](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) peut être utilisé pour forcer une réinitialisation d'EEPROM. Une fois cette image flashée, flashez à nouveau votre firmware standard. Cela devrait rétablir le fonctionnement de votre clavier.
+Si bootmagic est activé dans n'importe quel forme, vous devriez être capable de faire aussi ceci (regardez [Documentation Bootmagic](feature_bootmagic.md) et les informations spécifiques à votre clavier).
diff --git a/docs/fr-fr/faq_debug.md b/docs/fr-fr/faq_debug.md
new file mode 100644
index 000000000..7a85fd1f2
--- /dev/null
+++ b/docs/fr-fr/faq_debug.md
@@ -0,0 +1,236 @@
+# FAQ Débugage
+
+Cette page détaille diverses questions fréquemment posées par les utilisateurs sur le dépannage de leurs claviers.
+
+# Console de débugage
+
+## `hid_listen` ne reconnaît pas de périphérique
+
+Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire :
+
+```
+Waiting for device:.........
+```
+
+Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message :
+
+```
+Waiting for new device:.........................
+Listening:
+```
+
+Si vous ne recevez pas ce message `Listening:`, essayez de compiler avec `CONSOLE_ENABLE=yes` dans le [Makefile]
+
+Il se peut que vous ayez besoin de certains privilèges avancés pour accéder à des périphériques sur des OS comme Linux.
+
+- Essayez `sudo hid_listen`
+
+## Ne reçoit pas de messages sur la console
+
+Vérifiez :
+
+- *hid_listen* trouve votre périphérique. Voir ci-dessus.
+- Activez le débugage en appuyant sur **Magic**+d. Voir [Commandes Magic](https://github.com/tmk/tmk_keyboard#magic-commands).
+- Définissez `debug_enable=true` en général dans `matrix_init()` du fichier **matrix.c**.
+- Essayez d'utiliser la fonction `print` à la place du debug print. Voir **common/print.h**.
+- Déconnectez tous les autres périphériques qui utilisent la fonction console. Voir [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
+
+## Linux ou les systèmes UNIX nécessitent des privilèges super utilisateur
+
+Utilisez `sudo` pour exécuter *hid_listen* avec des privilèges étendus.
+
+```
+$ sudo hid_listen
+```
+
+Ou ajoutez une *udev rule* pour les périphériques TMK en plaçant un fichier dans le répertoire rules. Le chemin vers ce répertoire peut varier en fonction du système.
+
+Fichier: /etc/udev/rules.d/52-tmk-keyboard.rules(sous Ubuntu)
+```
+# tmk keyboard products https://github.com/tmk/tmk_keyboard
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
+```
+
+***
+
+# Divers
+
+## Considérations de sécurité
+
+Vous ne voulez probablement pas "briquer" votre clavier, rendre impossible d'écrire un firmware dessus. Il y a quelques paramètres qui montrent ce qui est (et n'est probablement pas) trop risqué.
+
+- Si votre map de clavier n'inclut pas de RESET, pour entrer en mode DFU, vous devrez appuyer sur le bouton reset du PCB. Cela implique que vous devrez certainement dévisser certaines pièces de votre clavier pour y accéder.
+- Modifier les fichiers tmk_core / common peut rendre le clavier inutilisable
+- Si un fichier .hex trop large est la cause du problème : `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash n’aura pas été fait et le clavier restera en mode DFU.
+- Pour finir, notez que la taille maximale d'un fichier .hex sur un Plank est de 7000h (28672 decimal)
+
+```
+Linking: .build/planck_rev4_cbbrowne.elf [OK]
+Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
+
+Size after:
+ text data bss dec hex filename
+ 0 22396 0 22396 577c planck_rev4_cbbrowne.hex
+```
+
+- La taille du fichier ci-dessus est de 22396/577ch, ce qui est en dessous de 28672/7000h
+- Tant que vous avez un fichier .hex alternatif correct, vous pouvez réessayer en le chargeant
+- Certaines options que vous pouvez spécifier dans votre Makefile consomme de la mémoire supplémentaire. Faites attention aux options BOOTMAGIC_ENABLE, MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE.
+- Les outils DFU **ne** vous permettent **pas** d'écrire dans le bootloader (à moins que vous n'ajoutiez des options spéciales), il n'y a donc peu de risque.
+- Les EEPROM ont environ 100000 cycles d'écriture. Ne réécrivez pas le firmware de manière continue et répétée. Vous allez détruire définitivement l'EEPROM.
+
+## NKRO ne fonctionne pas
+
+Premièrement, vous devez compiler le firmware avec l'option de compilation `NKRO_ENABLE` dans le **Makefile**.
+
+Essayez la commande `Magic` **N** (`LShift+RShift+N` par défaut) si **NKRO** ne fonctionne toujours pas. Vous pouvez utiliser cette commande pour basculer temporairement entre le mode **NKRO** et **6KRO**. Sous certaines conditions, **NKRO** ne fonctionnera pas et vous devrez basculer en **6KRO**, en particulier lorsque vous êtes dans le BIOS.
+
+Si votre firmware est compilé avec `BOOTMAGIC_ENABLE` vous devrez l'activer avec la commande `BootMagic` **N** (`Espace+N` par défaut). Cette option est enregistrée dans l'EEPROM et sera gardé entre deux cycles de démarrage.
+
+https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
+
+## Le TrackPoint a besoin Circuit de réinitialisation (Support de souris PS/2)
+
+Sans circuit de réinitialisation vous allez avoir des résultats inconsistants à cause de la mauvaise initialisation du matériel. Regardez le schéma du circuit du TPM754.
+
+- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
+- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
+
+## Impossible de lire la colonne de la matrice après 16
+
+Utilisez `1UL<<16` à la place de `1<<16` dans `read_cols()` du fichier [matrix.h] lorsque le nombre de vos colonnes dépassent 16.
+
+En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique que vous ne pouvez pas décaler à gauche de plus de 15. Si vous utilisez `1<<16`, vous aurez un résultat non attendu de zéro. Vous devez donc utiliser un type [unsigned long] en utilisant `1UL`.
+
+http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
+
+## Bootloader Jump ne fonctionne pas
+
+Configurez correctement la taille du bootloader dans le **Makefile**. Une mauvaise taille de section du bootloader empêchera probablement le démarrage avec **Magic command** et **Boot Magic**.
+
+```
+# Size of Bootloaders in bytes:
+# Atmel DFU loader(ATmega32U4) 4096
+# Atmel DFU loader(AT90USB128) 8192
+# LUFA bootloader(ATmega32U4) 4096
+# Arduino Caterina(ATmega32U4) 4096
+# USBaspLoader(ATmega***) 2048
+# Teensy halfKay(ATmega32U4) 512
+# Teensy++ halfKay(AT90USB128) 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+```
+
+La taille de la section de démarrage de AVR est définie par l'option **BOOTSZ** fuse. Vérifiez la fiche technique du MCU. Veuilez noter que les tailles et adresses sont définies en **Word** (2 octets) dans la fiche technique alors que TMK utilise des **Byte**.
+
+La section de boot AVR se trouve à la fin de la mémoire flash, comme suit.
+
+```
+byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286)
+0x0000 +---------------+ 0x00000 +---------------+
+ | | | |
+ | | | |
+ | Application | | Application |
+ | | | |
+ = = = =
+ | | 32KB-4KB | | 128KB-8KB
+0x6000 +---------------+ 0x1E000 +---------------+
+ | Bootloader | 4KB | Bootloader | 8KB
+0x7FFF +---------------+ 0x1FFFF +---------------+
+
+
+byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286)
+0x0000 +---------------+ 0x00000 +---------------+
+ | | | |
+ | | | |
+ | Application | | Application |
+ | | | |
+ = = = =
+ | | 32KB-512B | | 128KB-2KB
+0x7E00 +---------------+ 0x1FC00 +---------------+
+ | Bootloader | 512B | Bootloader | 2KB
+0x7FFF +---------------+ 0x1FFFF +---------------+
+```
+
+Référez-vous à cette discussion pour plus de référence.
+https://github.com/tmk/tmk_keyboard/issues/179
+
+Si vous utilisez un TeensyUSB, il y a un [bug connu](https://github.com/qmk/qmk_firmware/issues/164) qui fait que le bouton reset matériel empêche la touche RESET de fonctionner. Débrancher et rebrancher le clavier devrait résoudre le problème.
+
+## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
+
+Vous devez définir `EXTRAKEY_ENABLE` dans le fichier `rules.mk` pour les utiliser dans QMK.
+
+```
+EXTRAKEY_ENABLE = yes # Audio control and System control
+```
+
+## Réveiller du mode veille ne fonctionne pas
+
+Sous Windows, activez l'option `Permettre au périphérique de sortir l'ordinateur de veille` dans les paramètres des **Options d'alimentations** du **Gestionnaire de périphériques**. Vérifiez aussi les paramètres du BIOS.
+
+Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur de veille.
+
+## Vous utilisez un Arduino ?
+
+**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.
+
+- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
+- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
+
+Les Arduino Leonardo et micro ont des **ATMega32U4** et peuvent être utilisés avec TMK, mais le bootloader Arduino peut causer des problèmes.
+
+## Activer JTAG
+
+Par défaut, le débugage des interfaces JTAG est désactivé dès que le clavier démarre. Les MCUs compatible JTAG viennent d'usine avec le fusible `JTAGEN` activé, et il prend certaines pins du MCU que la board pourrait utiliser pour la matrice, les LEDs, etc.
+
+Si vous voulez garder JTAG activé, ajoutez la ligne suivante à votre fichier `config.h` :
+
+```c
+#define NO_JTAG_DISABLE
+```
+
+## Adding LED Indicators of Lock Keys
+
+Si vous souhaitez votre propre indicateur LED pour CapsLock, ScrollLock et NumLock alors lisez ce post.
+
+http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
+
+## Programmer Arduino Micro/Leonardo
+
+Appuyez sur le bouton reset puis lancez la commande suivante dans les 8 secondes.
+
+```
+avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
+```
+
+Le nom du périphérique peut varier en fonction de votre système.
+
+http://arduino.cc/en/Main/ArduinoBoardMicro
+https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
+
+## Compatibilité USB 3
+
+Il semble que certaines personnes ont eu des problèmes avec les ports USB 3, essayez un port USB 2.
+
+## Compatibilité Mac
+
+### OS X 10.11 et Hub
+
+https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
+
+## Problème sur BIOS (UEFI) / Resume (Mise en veille et réveil) / Redémarrage
+
+Certaines personnes ont eu des problèmes de fonctionnement de leur clavier dans le BIOS et/ou après des redémarrages.
+
+Pour le moment, l'origine du problème n'est pas comprise, mais certaines options de compilation semble liées. Dans le Makefile, essayez de désactiver les options comme `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` et/ou d'autres.
+
+https://github.com/tmk/tmk_keyboard/issues/266
+https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
+
+## FLIP ne marche pas
+
+### `AtLibUsbDfu.dll` Not Found
+
+Supprimez le pilote actuel et réinstallez celui donné par FLIP dans le gestionnaire de périphériques.
+
+http://imgur.com/a/bnwzy
diff --git a/docs/fr-fr/faq_general.md b/docs/fr-fr/faq_general.md
new file mode 100644
index 000000000..b1eae6df1
--- /dev/null
+++ b/docs/fr-fr/faq_general.md
@@ -0,0 +1,16 @@
+# Questions fréquemment posées
+
+## Qu'est-ce que QMK ?
+
+[QMK](https://github.com/qmk), acronyme pour Quantum Mechanical Keyboard, est un groupe de personnes qui construisent des outils pour des claviers personnalisés. Nous avons commencé par le [firmware QMK](https://github.com/qmk/qmk_firmware), un fork très modifié du firmware [TMK](https://github.com/tmk/tmk_keyboard).
+
+## Quelles sont les différences entre QMK et TMK ?
+
+TMK a été conçu et développé à l'origine par [Jun Wako](https://github.com/tmk). QMK a démarré comme étant le fork de [Jack Humbert](https://github.com/jackhumbert) pour le Planck. Au bout d'un moment, le fork de Jack a divergé de manière significative de TMK et, en 2015, Jack a décidé de le renommer QMK.
+
+D'un point de vue technique, QMK se base sur TMK en lui ajoutant plusieurs nouvelles fonctionnalités.
+QMK a notamment augmenté le nombre de keycodes disponibles et les a utilisé pour implémenter des fonctionnalités avancées telles que `S()`, `LCTL()` et `MO()`. Vous pouvez voir une liste complète de ces keycodes dans [Keycodes] (keycodes.md).
+
+D'un point de vue management de projet et communauté, Hasu, sur TMK maintient tous les claviers supportés officiellement par lui-même, avec un peu de support de la communauté. Il existe ou peuvent être créées d'autres communautés maintenant des fork pour d'autres claviers. Peu de keymaps sont définies par défaut, les utilisateurs ne se partagent donc pas leurs keymaps en général. QMK encourage le partage des claviers et des keymaps à l'aide d'un dépôt géré de manière centrale, acceptant les pull requests qui suivent les standards de qualité. Ceux-ci sont surtout maitenus par la communauté, mais l'équipe de QMK aide aussi lorsque c'est nécessaire.
+
+Les deux approches ont leurs avantages et leurs inconvénients, et le développements de fonctionnalités intéressantes sont partagées entre TMK et QMK lorsque fait sens.
diff --git a/docs/fr-fr/faq_keymap.md b/docs/fr-fr/faq_keymap.md
new file mode 100644
index 000000000..8244d4225
--- /dev/null
+++ b/docs/fr-fr/faq_keymap.md
@@ -0,0 +1,226 @@
+# FAQ Keymap
+
+Cette page couvre les questions souvent posées à propos des keymaps. Si vous ne l'avez pas encore fait, vous devriez commencer par là [Aperçu des Keymap](keymap.md).
+
+## Quels Keycodes puis-je utiliser ?
+
+Regardez [Keycodes](keycodes.md) pour une liste des keycodes disponibles. Certains keycodes spécifiques ont des documentations plus complètes de disponible.
+
+Les keycodes sont définies dans [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
+
+## Quels sont les keycodes par défaut ?
+
+Il existe 3 configurations de clavier standard utilisées dans le monde: ANSI, ISO et JIS. L'Amérique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres régions utilisent généralement ANSI ou ISO. Les keycodes correspondant à ces dispositions spécifiques sont affichés ici :
+
+<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
+![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png)
+
+## Certaines de mes touches sont permutées ou ne fonctionnent pas
+
+QMK possède deux fonctionnalités, Bootmagic et Command, qui vous permettent de modifier le comportement de votre clavier à la volée. Cela inclut, sans toutefois s'y limiter, l'échange de Ctrl / Majuscules, la désactivation de l'interface graphique, le basculement de Alt/Gui, le basculement de barre d'espacement arrière/barre oblique inversée, la désactivation de toutes les touches et d'autres modifications comportementales.
+
+Pour résoudre rapidement le problème, essayez de maintenir les touches Espace + Retour arrière enfoncées pendant que vous branchez votre clavier. Cela réinitialisera les paramètres stockés sur votre clavier, ramenant ces touches à un fonctionnement normal. Si cela ne fonctionne pas, regardez ici:
+
+* [Bootmagic](feature_bootmagic.md)
+* [Command](feature_command.md)
+
+## La touche de menu ne fonctionne pas
+
+La touche trouvée sur la plupart des claviers modernes située entre `KC_RGUI` et` KC_RCTL` est en réalité appelée `KC_APP`. En effet, lorsque cette touche a été inventée, il existait déjà une clé nommée `MENU` dans les normes correspondantes. MS a donc choisi de l'appeler la touche` APP`.
+
+## `KC_SYSREQ` ne fonctionne pas
+
+Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`) à la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'.
+
+Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et
+* http://en.wikipedia.org/wiki/Magic_SysRq_key
+* http://en.wikipedia.org/wiki/System_request
+
+## Les touches alimentation ne fonctionnent pas
+
+Un peu déroutant, il y a deux codes de touche "Alimentation" dans QMK: `KC_POWER` dans la page d'utilisation du clavier / keypad, et `KC_SYSTEM_POWER` (ou `KC_PWR`) dans la page Consumer.
+
+Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_WAKE` sont supportés par les trois principaux systèmes d'exploitation. Il est donc recommandé de les utiliser à la place. Sous Windows, ces touches prennent effet immédiatement, mais sur macOS, elles doivent être maintenues enfoncées jusqu'à ce qu'une boîte de dialogue apparaisse.
+
+## Modificateur "One Shot"
+
+Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex : `CEtte` à la place de `Cette`. La fonctionnalité « One shot » shift permet de corriger ça.
+
+https://github.com/tmk/tmk_keyboard/issues/67
+
+## Le modificateur d'un calque reste bloqué
+
+Les touches de modification ou les calques peuvent être bloquées si la commutation de calque n'est pas configurée correctement.
+Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la même position du calque de destination afin de désenregistrer la clé de modificateur ou de revenir au calque précédent lors de la libération.
+
+* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
+* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
+* https://github.com/tmk/tmk_keyboard/issues/248
+
+## Support de touche à verrouillage mécanique
+
+Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](http://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h` :
+
+```
+#define LOCKING_SUPPORT_ENABLE
+#define LOCKING_RESYNC_ENABLE
+```
+
+Une fois la fonction activée, utilisez les keycodes `KC_LCAP`, `KC_LNUM` et `KC_LSCR` dans votre keymap.
+
+Des vieux claviers mécaniques ont parfois des touches à verrouillage, mais les claviers modernes n'en sont pas équipés. ***Vous n'avez pas besoin de cette fonction dans la majorité des cas et devez utiliser les keycodes `KC_CAPS`, `KC_NLCK` et `KC_SLCK`.***
+
+## Ajouter des caractères spéciaux autres que ASCII comme la cédille 'Ç'
+
+IL N'EXISTE AUCUNE METHODE UNIVERSELLE POUR LES AJOUTER QUI FONCTIONNE SUR TOUS LES SYSTEMES. Vous devez définir une **MACRO** d'une manière spécifique à votre OS ou layout.
+
+Voir ce post pour un exemple de code **MACRO**.
+
+http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
+
+Sous **Windows** vous pouvez utiliser la touche `AltGr` ou **Alt code**.
+* http://en.wikipedia.org/wiki/AltGr_key
+* http://en.wikipedia.org/wiki/Alt_code
+
+Sous **Mac OS** définissez une combinaison de touche `Option`.
+* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
+
+Sous **Xorg** vous pouvez utiliser une touche `compose` à la place.
+* http://en.wikipedia.org/wiki/Compose_key
+
+Et voir ceci pour une entrée **Unicode**.
+* http://en.wikipedia.org/wiki/Unicode_input
+
+## Touche `Fn` sur macOS
+
+Contrairement à la plupart des touches Fn, celle des claviers Apple a son propre code d'activation... en quelque sorte. Il remplace le sixième code d'activation dans un rapport de base 6KRO HID - de sorte qu'un clavier Apple ne contient en réalité que 5KRO.
+
+Il est techniquement possible de demander à QMK d’envoyer ce keycode. Cependant, cela nécessite une modification du format du rapport pour ajouter l'état de la touche Fn.
+Pire encore, ce keycode n'est reconnu que si les identifiants du clavier VID et PID correspondent à ceux d'un vrai clavier Apple. Malheureusement QMK ne peut juridiquement prendre en charge cette fonctionnalité et il y a peu de chance que la situation s'améliore.
+
+Voir [cette issue](https://github.com/qmk/qmk_firmware/issues/2179) pour des informations détaillées.
+
+## Touches Media sous Mac OSX
+
+#### KC_MNXT et KC_MPRV ne fonctionnent pas sous Mac
+
+Utilisez `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) et `KC_MRWD`(`KC_MEDIA_REWIND`) à la place de `KC_MNXT` et `KC_MPRV`.
+Voir https://github.com/tmk/tmk_keyboard/issues/195
+
+## Touches supportées sous Mac OSX?
+
+Vous pouvez connaître les keycodes supportés par OSX en lisant ce code source.
+
+`usb_2_adb_keymap` contient les tableaux des pages Keyboard/Keypad vers les scancodes ADB (keycodes interne à OSX).
+
+https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c
+
+Et `IOHIDConsumer::dispatchConsumerEvent` s'occupe des utilisations Consumer page.
+
+https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
+
+## Touches JIS dans Mac OSX
+
+Les touches de clavier spécifiques JIS comme `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` ne sont pas reconnues par OSX. Vous pouvez utiliser **Seil** pour les activer, esssayez les options suivantes.
+
+* Activer la touche NFER sur clavier PC
+* Activer la touche XFER sur clavier PC
+* Activer la touche KATAKANA sur clavier PC
+
+https://pqrs.org/osx/karabiner/seil.html
+
+## RN-42 Bluetooth ne fonctionne pas avec Karabiner
+
+Karabiner - Outil de Keymapping sous Mac OSX - Ignore les entrées du module RN-42. Vous devez activer cette option pour rendre Karabiner compatible avec votre clavier.
+https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
+
+Plus de détails sur ce problème sur les liens suivants.
+https://github.com/tmk/tmk_keyboard/issues/213
+https://github.com/tekezo/Karabiner/issues/403
+
+## Esc et <code>&#96;</code> sur une touche simple.
+
+Cette fonctionnalité permet d'utiliser une touche à la fois comme touche Échap ou une touche `§` (En Azerty) selon le cas d’utilisation. Cela est très utile sur un clavier de petite taille.
+
+Voir la fonctionnalité [Grave Escape](feature_grave_esc.md).
+
+## Avoir les touches modificatrices qui ont double usage en flèches directionnelles.
+
+Ceci transforme les touches "modificateur droit" en touches fléchées lorsque les touches sont seulement "tapées" tout en restant des modificateurs lorsqu'elles sont maintenues.
+
+Dans TMK la fonction double rôle s'appelle **TAP**.
+
+```C
+
+#include "keymap_common.h"
+
+
+/* Arrow keys on right modifier keys with TMK dual role feature
+ *
+ * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
+ * https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
+ */
+const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty */
+ [0] = LAYOUT( \
+ ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS,BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
+ LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \
+ LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, ESC, \
+ FN4, LGUI,LALT, SPC, APP, FN2, FN1, FN3),
+ [1] = LAYOUT( \
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
+ TRNS,TRNS,TRNS, TRNS, TRNS,FN7, FN6, FN8),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
+ [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
+ [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
+ [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
+ [4] = ACTION_LAYER_MOMENTARY(1),
+ [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
+ [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
+ [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
+ [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
+};
+
+```
+
+Touches double rôle : https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
+
+## Eject sur Mac OSX
+
+Le keycode`KC_EJCT` fonctionne sous OSX. https://github.com/tmk/tmk_keyboard/issues/250
+
+Il semble que Windows 10 ignore le code et Linux/Xorg le reconnaît mais n'a pas de mapping par défaut.
+
+Nous ne sommes pas sûr quel keycode est utilisé pour la touche Eject sur les claviers Apple officiels. HHKB utilise `F20` pour la touche Eject (`Fn+f`) lorsqu'il est en mode Mac, mais ce n'est probablement pas la même chose que le keycode Eject d'Apple.
+
+## Qu'est-ce que `weak_mods` et `real_mods` dans `action_util.c`
+
+___TO BE IMPROVED___
+
+real_mods est prévu pour retenir l'état des touches modificateur réelles/physiques, alors que weak_mods ne retient l'état que des modificateurs temporaires ou virtuels qui ne devraient pas affecter l'état des touches modificaterus réelles.
+
+Par exemple, disons que vous maintenez la touche physique "shift gauche" et tapez ACTION_MODS_KEY(LSHIFT, KC_A),
+
+en weak_mods,
+
+* (1) maintenir shift gauche : real_mods |= MOD_BIT(LSHIFT)
+* (2) appuyer ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)
+* (3) lâcher ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT)
+real_mods garde sur état modificateur.
+
+sans weak_mods,
+
+* (1) maintenir shift gauche : real_mods |= MOD_BIT(LSHIFT)
+* (2) appuyer ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT)
+* (3) lâcher ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT)
+ici real_mods a perdu son état pour 'shift gauche physique'.
+
+weak_mods est ORed avec real_mods lorsque le rapport du clavier est envoyé.
+https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
diff --git a/docs/fr-FR/flashing.md b/docs/fr-fr/flashing.md
index c380614a5..c380614a5 100644
--- a/docs/fr-FR/flashing.md
+++ b/docs/fr-fr/flashing.md
diff --git a/docs/fr-FR/getting_started_getting_help.md b/docs/fr-fr/getting_started_getting_help.md
index fedb18c76..fedb18c76 100644
--- a/docs/fr-FR/getting_started_getting_help.md
+++ b/docs/fr-fr/getting_started_getting_help.md
diff --git a/docs/fr-FR/getting_started_github.md b/docs/fr-fr/getting_started_github.md
index 22c6ee749..22c6ee749 100644
--- a/docs/fr-FR/getting_started_github.md
+++ b/docs/fr-fr/getting_started_github.md
diff --git a/docs/fr-FR/getting_started_introduction.md b/docs/fr-fr/getting_started_introduction.md
index a7f0ff96a..a7f0ff96a 100644
--- a/docs/fr-FR/getting_started_introduction.md
+++ b/docs/fr-fr/getting_started_introduction.md
diff --git a/docs/fr-FR/newbs.md b/docs/fr-fr/newbs.md
index 13b06b429..13b06b429 100644
--- a/docs/fr-FR/newbs.md
+++ b/docs/fr-fr/newbs.md
diff --git a/docs/fr-FR/newbs_best_practices.md b/docs/fr-fr/newbs_best_practices.md
index 149101314..149101314 100644
--- a/docs/fr-FR/newbs_best_practices.md
+++ b/docs/fr-fr/newbs_best_practices.md
diff --git a/docs/fr-FR/newbs_building_firmware.md b/docs/fr-fr/newbs_building_firmware.md
index 81870d31e..81870d31e 100644
--- a/docs/fr-FR/newbs_building_firmware.md
+++ b/docs/fr-fr/newbs_building_firmware.md
diff --git a/docs/fr-FR/newbs_building_firmware_configurator.md b/docs/fr-fr/newbs_building_firmware_configurator.md
index 577e5c80e..577e5c80e 100644
--- a/docs/fr-FR/newbs_building_firmware_configurator.md
+++ b/docs/fr-fr/newbs_building_firmware_configurator.md
diff --git a/docs/fr-FR/newbs_flashing.md b/docs/fr-fr/newbs_flashing.md
index c9849eb10..c9849eb10 100644
--- a/docs/fr-FR/newbs_flashing.md
+++ b/docs/fr-fr/newbs_flashing.md
diff --git a/docs/fr-FR/newbs_getting_started.md b/docs/fr-fr/newbs_getting_started.md
index 8a8029fd1..8a8029fd1 100644
--- a/docs/fr-FR/newbs_getting_started.md
+++ b/docs/fr-fr/newbs_getting_started.md
diff --git a/docs/fr-FR/newbs_learn_more_resources.md b/docs/fr-fr/newbs_learn_more_resources.md
index 01b1c9e8e..01b1c9e8e 100644
--- a/docs/fr-FR/newbs_learn_more_resources.md
+++ b/docs/fr-fr/newbs_learn_more_resources.md
diff --git a/docs/fr-FR/newbs_testing_debugging.md b/docs/fr-fr/newbs_testing_debugging.md
index 680d7644e..680d7644e 100644
--- a/docs/fr-FR/newbs_testing_debugging.md
+++ b/docs/fr-fr/newbs_testing_debugging.md