diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
index 3be7d524674db9b4ce4d158f055ebaff0b6fa1d9..a94fe06da38dbf10d9e4dca7029d56456ea0602b 100644
--- a/config/packages/twig.yaml
+++ b/config/packages/twig.yaml
@@ -1,6 +1,8 @@
 twig:
     default_path: '%kernel.project_dir%/templates'
     form_themes: ['bootstrap_5_layout.html.twig']
+    globals:
+        languages: '@App\Manager\LanguagesManager'
 
 when@test:
     twig:
diff --git a/src/Command/BalexInitializeCommand.php b/src/Command/BalexInitializeCommand.php
index ca1767db0d91d40d0e3016e6b8d1c87d2493feae..4965c3396a66000ca74aa6864c24d9df8413f768 100644
--- a/src/Command/BalexInitializeCommand.php
+++ b/src/Command/BalexInitializeCommand.php
@@ -5,6 +5,7 @@ namespace App\Command;
 use App\Entity\Label;
 use App\Entity\Lexicon;
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Doctrine\ORM\EntityManagerInterface;
 use League\Bundle\OAuth2ServerBundle\Model\Client;
 use Symfony\Component\Console\Attribute\AsCommand;
@@ -51,7 +52,7 @@ class BalexInitializeCommand extends Command
         //TODO utiliser la liste de langues
 
         // Création des lexiques zéro et new word
-        foreach (User::LANGUAGES as $language) {
+        foreach (LanguagesIso::getCodes() as $language) {
             // Création d'un lexique Zéro par langue
             $zeroLexicon = new Lexicon();
             $zeroLexicon->setCategory(Lexicon::TYPE_ZERO);
diff --git a/src/Controller/ApiBaseController.php b/src/Controller/ApiBaseController.php
index aa31272cccbdfc404ddb652e2219382088e711c8..fcc910c63f26bc412fe9bd3badcc6ddf72673225 100644
--- a/src/Controller/ApiBaseController.php
+++ b/src/Controller/ApiBaseController.php
@@ -8,6 +8,7 @@ use App\Entity\Headword;
 use App\Entity\Label;
 use App\Entity\Lexicon;
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use App\Manager\WiktionaryManager;
 use Doctrine\Persistence\ManagerRegistry;
 use phpDocumentor\Reflection\Types\Integer;
@@ -173,7 +174,7 @@ class ApiBaseController extends AbstractController
 
     public function getLanguages()
     {
-        return User::LANGUAGES;
+        return LanguagesIso::getCodes();
     }
 
     /**
diff --git a/src/Controller/LexiconController.php b/src/Controller/LexiconController.php
index ab248f9bb6a3a32fb107c2775daeca909d421450..8c0e61b67034c19e9c74d5feb412076b21199ff8 100644
--- a/src/Controller/LexiconController.php
+++ b/src/Controller/LexiconController.php
@@ -24,12 +24,6 @@ class LexiconController extends AbstractController
      */
     public function index(LexiconRepository $lexiconRepository): Response
     {
-        dump(in_array('update_comment', Log::LOG_LIST_CATEGORIES));die();
-//        $entry2 = $this->getDoctrine()->getRepository(Entry::class)->find(9);
-//
-//
-//        dump($entry1->getAttributes(), $entry2->getAttributes(), array_merge_recursive($entry1->getAttributes()['Items'], $entry2->getAttributes()['Items']));die();
-
         return $this->render('lexicon/index.html.twig', [
             'lexicons' => $lexiconRepository->findAll(),
         ]);
diff --git a/src/Entity/StudiedLanguage.php b/src/Entity/StudiedLanguage.php
index 6b707ebcdc6969b51a844d509c21b64910b7b006..9d6596d9ce29de3ca38dae4b006435af5cb64ecc 100644
--- a/src/Entity/StudiedLanguage.php
+++ b/src/Entity/StudiedLanguage.php
@@ -2,6 +2,7 @@
 
 namespace App\Entity;
 
+use App\Languages\LanguagesIso;
 use App\Repository\LabelRepository;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Serializer\Annotation\Groups;
@@ -48,7 +49,7 @@ class StudiedLanguage
 
     public function __toString()
     {
-        return User::getFormattedLanguage($this->getLanguage()) . ' : ' . $this->getLevel();
+        return LanguagesIso::getLabelFromCode($this->getLanguage()) . ' : ' . $this->getLevel();
     }
 
     /**
diff --git a/src/Entity/User.php b/src/Entity/User.php
index 063a7e8a99d5d8bfa551e328c8a294e4a8aaabcf..a882c7d3f31d994e867f0c9639d83b5b7c5ded42 100644
--- a/src/Entity/User.php
+++ b/src/Entity/User.php
@@ -26,19 +26,6 @@ use Symfony\Component\Serializer\Annotation\Ignore;
  */
 class User implements UserInterface, PasswordAuthenticatedUserInterface
 {
-    const LANGUAGES = [
-        'Français' => 'fr',
-        'Anglais' => 'en',
-        'Allemand' => 'de',
-        'Italien' => 'it',
-        'Espagnol' => 'es',
-    ];
-
-    public static function getFormattedLanguage($languageCode)
-    {
-        return array_search($languageCode, self::LANGUAGES);
-    }
-
     const LANGUAGE_LEVELS = [
         'A1' => 'A1',
         'A2' => 'A2',
diff --git a/src/Form/GraphyListType.php b/src/Form/GraphyListType.php
index 11f15aaadb61e966fede5015fd1dbec73cf82019..ed0ceb5b33037eec6dacec07fa1a8b9544d45dab 100644
--- a/src/Form/GraphyListType.php
+++ b/src/Form/GraphyListType.php
@@ -5,6 +5,7 @@ namespace App\Form;
 use App\Entity\GraphyList;
 use App\Entity\Group;
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\CallbackTransformer;
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
@@ -24,7 +25,7 @@ class GraphyListType extends AbstractType
             ])
             ->add('language', ChoiceType::class, [
                 'label' => 'Langue',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('category', ChoiceType::class, [
                 'label' => 'Langue',
diff --git a/src/Form/GroupType.php b/src/Form/GroupType.php
index f5942b0141bde6f5dffb1eddef97861dbf6216b5..16250a9025ac37ef2b27550dbb2312e08f6c1475 100644
--- a/src/Form/GroupType.php
+++ b/src/Form/GroupType.php
@@ -4,6 +4,7 @@ namespace App\Form;
 
 use App\Entity\Group;
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
@@ -22,7 +23,7 @@ class GroupType extends AbstractType
             ->add('language', ChoiceType::class, [
                 'mapped' => false,
                 'label' => 'Langue',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('submit', SubmitType::class, [
                 'label' => 'Enregistrer',
diff --git a/src/Form/RegistrationFormType.php b/src/Form/RegistrationFormType.php
index 6ec2c69d5cf90dccc42adf848cbeef84de010165..8172e1bf0bfe09fc73cfe3df4ead2df26050b656 100644
--- a/src/Form/RegistrationFormType.php
+++ b/src/Form/RegistrationFormType.php
@@ -3,6 +3,7 @@
 namespace App\Form;
 
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Doctrine\DBAL\Types\TextType;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
@@ -51,7 +52,7 @@ class RegistrationFormType extends AbstractType
             ])
             ->add('nativeLanguage', ChoiceType::class, [
                 'label' => 'Langue natale',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('studiedLanguage', StudiedLanguageType::class, [
                 'mapped' => false,
diff --git a/src/Form/StudiedLanguageType.php b/src/Form/StudiedLanguageType.php
index 4235211d47150c37248dfa90468d1de6c500727f..8738652c0ca452276bd58f95551bc798f5a01058 100644
--- a/src/Form/StudiedLanguageType.php
+++ b/src/Form/StudiedLanguageType.php
@@ -4,6 +4,7 @@ namespace App\Form;
 
 use App\Entity\StudiedLanguage;
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Doctrine\DBAL\Types\TextType;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
@@ -23,7 +24,7 @@ class StudiedLanguageType extends AbstractType
         $builder
             ->add('language', ChoiceType::class, [
                 'label' => 'Langue étudiée',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('level', ChoiceType::class, [
                 'label' => 'Niveau',
diff --git a/src/Form/UserProfileFormType.php b/src/Form/UserProfileFormType.php
index f5aa87784e4f88166f6f934bd87d52b3bf5ba0e2..b532a005bbba0ed88b2378ce49dc07f9d2110998 100644
--- a/src/Form/UserProfileFormType.php
+++ b/src/Form/UserProfileFormType.php
@@ -3,6 +3,7 @@
 namespace App\Form;
 
 use App\Entity\User;
+use App\Languages\LanguagesIso;
 use Doctrine\DBAL\Types\TextType;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
@@ -23,22 +24,26 @@ class UserProfileFormType extends AbstractType
         $builder
             ->add('nativeLanguage', ChoiceType::class, [
                 'label' => 'Langue natale',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('appLanguage', ChoiceType::class, [
                 'label' => 'Langue interface',
-                'choices' => User::LANGUAGES,
+                'choices' => LanguagesIso::getCodes(),
             ])
             ->add('activePersonalStats', CheckboxType::class, [
+                'required' => false,
                 'label' => 'Activation statistiques persos',
             ])
             ->add('activeGamification', CheckboxType::class, [
+                'required' => false,
                 'label' => 'Activation gamification',
             ])
             ->add('shareDataWithOtherUsers', CheckboxType::class, [
+                'required' => false,
                 'label' => 'Partage des données avec les autres utilisateurs',
             ])
             ->add('shareDataWithResearchers', CheckboxType::class, [
+                'required' => false,
                 'label' => 'Partage des données avec les enseignants',
             ])
             ->add('picture', PictureType::class, [
diff --git a/src/Languages/LanguagesIso.php b/src/Languages/LanguagesIso.php
new file mode 100644
index 0000000000000000000000000000000000000000..3116a25d8ae848cd8b9a332b063b65a94d5703b6
--- /dev/null
+++ b/src/Languages/LanguagesIso.php
@@ -0,0 +1,232 @@
+<?php
+
+namespace App\Languages;
+
+class LanguagesIso
+{
+    public static function getCodes($labelLanguage = 'fr')
+    {
+        $result = [];
+
+        if ($labelLanguage == 'own') {
+            foreach (self::LIST as $code => $labels) {
+                $result[$labels[1]] = $code;
+            }
+        } elseif ($labelLanguage == 'en') {
+            foreach (self::LIST as $code => $labels) {
+                $result[$labels[2]] = $code;
+            }
+        } else {
+            // Français par défaut
+            foreach (self::LIST as $code => $labels) {
+                $result[$labels[0]] = $code;
+            }
+        }
+
+        return $result;
+    }
+
+
+    public static function getLabel($code, $labelLanguage = 'fr')
+    {
+        if ($labelLanguage == 'own') {
+            return self::LIST[$code][1];
+        }
+        if ($labelLanguage == 'en') {
+            return self::LIST[$code][0];
+        }
+
+        // Français par défaut
+        return self::LIST[$code][0];
+    }
+
+    // "code" => ["français", "langue originale", "anglais"]
+
+    const LIST = [
+        "aa" => ["Afar", "Afaraf", "Afar"],
+        "ab" => ["Abkhaze", "Аҧсуа", "Abkhazian"],
+        "ae" => ["Avestique", "Avesta", "Avestan"],
+        "af" => ["Afrikaans", "Afrikaans", "Afrikaans"],
+        "ak" => ["Akan", "Akan", "Akan"],
+        "am" => ["Amharique", "አማርኛ", "Amharic"],
+        "an" => ["Aragonais", "Aragonés", "Aragonese"],
+        "ar" => ["Arabe", "العربية", "Arabic"],
+        "as" => ["Assamais", "অসমীয়া", "Assamese"],
+        "av" => ["Avar", "авар мацӀ ; магӀарул мацӀ", "Avaric"],
+        "ay" => ["Aymara", "Aymar aru", "Aymara"],
+        "az" => ["Azéri", "Azərbaycan dili", "Azerbaijani"],
+        "ba" => ["Bachkir", "башҡорт теле", "Bashkir"],
+        "be" => ["Biélorusse", "Беларуская", "Belarusian"],
+        "bg" => ["Bulgare", "български език", "Bulgarian"],
+        "bh" => ["Bihari", "भोजपुरी", "Bihari"],
+        "bi" => ["Bichelamar", "Bislama", "Bislama"],
+        "bm" => ["Bambara", "Bamanankan", "Bambara"],
+        "bn" => ["Bengali", "বাংলা", "Bengali"],
+        "bo" => ["Tibétain", "བོད་ཡིག", "Tibetan"],
+        "br" => ["Breton", "Brezhoneg", "Breton"],
+        "bs" => ["Bosnien", "Bosanski jezik", "Bosnian"],
+        "ca" => ["Catalan", "Català", "Catalan"],
+        "ce" => ["Tchétchène", "нохчийн мотт", "Chechen"],
+        "ch" => ["Chamorro", "Chamoru", "Chamorro"],
+        "co" => ["Corse", "Corsu ; lingua corsa", "Corsican"],
+        "cr" => ["Cri", "ᓀᐦᐃᔭᐍᐏᐣ", "Cree"],
+        "cs" => ["Tchèque", "Česky čeština", "Czech"],
+        "cu" => ["Vieux-slave", "Словѣньскъ", "Old Church Slavonic"],
+        "cv" => ["Tchouvache", "чӑваш чӗлхи", "Chuvash"],
+        "cy" => ["Gallois", "Cymraeg", "Welsh"],
+        "da" => ["Danois", "Dansk", "Danish"],
+        "de" => ["Allemand", "Deutsch", "German"],
+        "dv" => ["Maldivien", "Þ‹Þ¨ÞˆÞ¬Þ€Þ¨", "Divehi"],
+        "dz" => ["Dzongkha", "རྫོང་ཁ", "Dzongkha"],
+        "ee" => ["Ewe", "Ɛʋɛgbɛ", "Ewe"],
+        "el" => ["Grec moderne", "Ελληνικά", "Greek"],
+        "en" => ["Anglais", "English", "English"],
+        "eo" => ["Espéranto", "Esperanto", "Esperanto"],
+        "es" => ["Espagnol", "Español; castellano", "Spanish"],
+        "et" => ["Estonien", "Eesti keel", "Estonian"],
+        "eu" => ["Basque", "Euskara", "Basque"],
+        "fa" => ["Persan", "فارسی", "Persian"],
+        "ff" => ["Peul", "Fulfulde", "Fulah"],
+        "fi" => ["Finnois", "Suomen kieli", "Finnish"],
+        "fj" => ["Fidjien", "Vosa Vakaviti", "Fijian"],
+        "fo" => ["Féroïen", "Føroyskt", "Faroese"],
+        "fr" => ["Français", "Français ; langue française", "French"],
+        "fy" => ["Frison occidental", "Frysk", "Western Frisian"],
+        "ga" => ["Irlandais", "Gaeilge", "Irish"],
+        "gd" => ["Écossais", "Gàidhlig", "Scottish Gaelic"],
+        "gl" => ["Galicien", "Galego", "Galician"],
+        "gn" => ["Guarani", "Avañe'ẽ", "Guarani"],
+        "gu" => ["Gujarati", "ગુજરાતી", "Gujarati"],
+        "gv" => ["Mannois", "Ghaelg", "Manx"],
+        "ha" => ["Haoussa", "هَوُسَ", "Hausa"],
+        "he" => ["Hébreu", "עברית", "Hebrew"],
+        "hi" => ["Hindi", "हिन्दी ; हिंदी", "Hindi"],
+        "ho" => ["Hiri motu", "Hiri Motu", "Hiri Motu"],
+        "hr" => ["Croate", "Hrvatski", "Croatian"],
+        "ht" => ["Créole haïtien", "Kreyòl ayisyen", "Haitian"],
+        "hu" => ["Hongrois", "magyar", "Hungarian"],
+        "hy" => ["Arménien", "Հայերեն", "Armenian"],
+        "hz" => ["Héréro", "Otjiherero", "Herero"],
+        "ia" => ["Interlingua", "Interlingua", "Interlingua"],
+        "id" => ["Indonésien", "Bahasa Indonesia", "Indonesian"],
+        "ie" => ["Occidental", "Interlingue", "Interlingue"],
+        "ig" => ["Igbo", "Igbo", "Igbo"],
+        "ii" => ["Yi", "ꆇꉙ", "Sichuan Yi"],
+        "ik" => ["Inupiak", "Iñupiaq ; Iñupiatun", "Inupiaq"],
+        "io" => ["Ido", "Ido", "Ido"],
+        "is" => ["Islandais", "Íslenska", "Icelandic"],
+        "it" => ["Italien", "Italiano", "Italian"],
+        "iu" => ["Inuktitut", "ᐃᓄᒃᑎᑐᑦ", "Inuktitut"],
+        "ja" => ["Japonais", "日本語 (にほんご)", "Japanese"],
+        "jv" => ["Javanais", "Basa Jawa", "Javanese"],
+        "ka" => ["Géorgien", "ქართული", "Georgian"],
+        "kg" => ["Kikongo", "KiKongo", "Kongo"],
+        "ki" => ["Kikuyu", "Gĩkũyũ", "Kikuyu"],
+        "kj" => ["Kuanyama", "Kuanyama", "Kwanyama"],
+        "kk" => ["Kazakh", "Қазақ тілі", "Kazakh"],
+        "kl" => ["Groenlandais", "Kalaallisut ; kalaallit oqaasii", "Greenlandic"],
+        "km" => ["Khmer", "ភាសាខ្មែរ", "Khmer"],
+        "kn" => ["Kannada", "ಕನ್ನಡ", "Kannada"],
+        "ko" => ["Coréen", "한국어 (韓國語) ; 조선말 (朝鮮語)", "Korean"],
+        "kr" => ["Kanouri", "Kanuri", "Kanuri"],
+        "ks" => ["Cachemiri", "कश्मीरी ; كشميري", "Kashmiri"],
+        "ku" => ["Kurde", "Kurdî ; كوردی", "Kurdish"],
+        "kv" => ["Komi", "коми кыв", "Komi"],
+        "kw" => ["Cornique", "Kernewek", "Cornish"],
+        "ky" => ["Kirghiz", "кыргыз тили", "Kirghiz"],
+        "la" => ["Latin", "Latine ; lingua latina", "Latin"],
+        "lb" => ["Luxembourgeois", "Lëtzebuergesch", "Luxembourgish"],
+        "lg" => ["Ganda", "Luganda", "Ganda"],
+        "li" => ["Limbourgeois", "Limburgs", "Limburgish"],
+        "ln" => ["Lingala", "Lingála", "Lingala"],
+        "lo" => ["Lao", "ພາສາລາວ", "Lao"],
+        "lt" => ["Lituanien", "Lietuvių kalba", "Lithuanian"],
+        "lu" => ["Luba", "tshiluba", "Luba"],
+        "lv" => ["Letton", "Latviešu valoda", "Latvian"],
+        "mg" => ["Malgache", "Fiteny malagasy", "Malagasy"],
+        "mh" => ["Marshallais", "Kajin M̧ajeļ", "Marshallese"],
+        "mi" => ["Maori de Nouvelle-Zélande", "Te reo Māori", "Māori"],
+        "mk" => ["Macédonien", "македонски јазик", "Macedonian"],
+        "ml" => ["Malayalam", "മലയാളം", "Malayalam"],
+        "mn" => ["Mongol", "Монгол", "Mongolian"],
+        "mr" => ["Marathi", "मराठी", "Marathi"],
+        "ms" => ["Malais", "Bahasa Melayu ; بهاس ملايو", "Malay"],
+        "mt" => ["Maltais", "Malti", "Maltese"],
+        "my" => ["Birman", "ဗမာစာ", "Burmese"],
+        "na" => ["Nauruan", "Ekakairũ Naoero", "Nauru"],
+        "nb" => ["Norvégien bokmål", "Norsk bokmål", "Norwegian Bokmål"],
+        "nd" => ["Sindebele", "isiNdebele", "North Ndebele"],
+        "ne" => ["Népalais", "नेपाली", "Nepali"],
+        "ng" => ["Ndonga", "Owambo", "Ndonga"],
+        "nl" => ["Néerlandais", "Nederlands", "Dutch"],
+        "nn" => ["Norvégien nynorsk", "Norsk nynorsk", "Norwegian Nynorsk"],
+        "no" => ["Norvégien", "Norsk", "Norwegian"],
+        "nr" => ["Nrebele", "Ndébélé", "South Ndebele"],
+        "nv" => ["Navajo", "Diné bizaad ; Dinékʼehǰí", "Navajo"],
+        "ny" => ["Chichewa", "ChiCheŵa ; chinyanja", "Chichewa"],
+        "oc" => ["Occitan", "Occitan", "Occitan"],
+        "oj" => ["Ojibwé", "ᐊᓂᔑᓈᐯᒧᐎᓐ", "Ojibwa"],
+        "om" => ["Oromo", "Afaan Oromoo", "Oromo"],
+        "or" => ["Oriya", "ଓଡ଼ିଆ", "Oriya"],
+        "os" => ["Ossète", "Ирон ӕвзаг", "Ossetian"],
+        "pa" => ["Pendjabi", "ਪੰਜਾਬੀ ; پنجابی", "Panjabi"],
+        "pi" => ["Pali", "पािऴ", "Pāli"],
+        "pl" => ["Polonais", "Polski", "Polish"],
+        "ps" => ["Pachto", "پښتو", "Pashto"],
+        "pt" => ["Portugais", "Português", "Portuguese"],
+        "qu" => ["Quechua", "Runa Simi ; Kichwa", "Quechua"],
+        "rm" => ["Romanche", "Rumantsch grischun", "Romansh"],
+        "rn" => ["Kirundi", "kiRundi", "Kirundi"],
+        "ro" => ["Roumain", "Română", "Romanian"],
+        "ru" => ["Russe", "русский язык", "Russian"],
+        "rw" => ["Kinyarwanda", "Kinyarwanda", "Kinyarwanda"],
+        "sa" => ["Sanskrit", "संस्कृतम्", "Sanskrit"],
+        "sc" => ["Sarde", "sardu", "Sardinian"],
+        "sd" => ["Sindhi", "सिन्धी ; سنڌي، سندھی", "Sindhi"],
+        "se" => ["Same du Nord", "Davvisámegiella", "Northern Sami"],
+        "sg" => ["Sango", "Yângâ tî sängö", "Sango"],
+        "sh" => ["Serbo-croate", "srpskohrvatski jezik ; српскохрватски језик", "Serbo-Croatian"],
+        "si" => ["Cingalais", "සිංහල", "Sinhalese"],
+        "sk" => ["Slovaque", "Slovenčina", "Slovak"],
+        "sl" => ["Slovène", "Slovenščina", "Slovenian"],
+        "sm" => ["Samoan", "Gagana fa'a Samoa", "Samoan"],
+        "sn" => ["Shona", "chiShona", "Shona"],
+        "so" => ["Somali", "Soomaaliga ; af Soomaali", "Somali"],
+        "sq" => ["Albanais", "Shqip", "Albanian"],
+        "sr" => ["Serbe", "српски језик", "Serbian"],
+        "ss" => ["Swati", "SiSwati", "Swati"],
+        "st" => ["Sotho du Sud", "seSotho", "Sotho"],
+        "su" => ["Soundanais", "Basa Sunda", "Sundanese"],
+        "sv" => ["Suédois", "Svenska", "Swedish"],
+        "sw" => ["Swahili", "Kiswahili", "Swahili"],
+        "ta" => ["Tamoul", "தமிழ்", "Tamil"],
+        "te" => ["Télougou", "తెలుగు", "Telugu"],
+        "tg" => ["Tadjik", "тоҷикӣ ; toğikī ; تاجیکی", "Tajik"],
+        "th" => ["Thaï", "ไทย", "Thai"],
+        "ti" => ["Tigrigna", "ትግርኛ", "Tigrinya"],
+        "tk" => ["Turkmène", "Türkmen ;Түркмен", "Turkmen"],
+        "tl" => ["Tagalog", "Tagalog", "Tagalog"],
+        "tn" => ["Tswana", "seTswana", "Tswana"],
+        "to" => ["Tongien", "faka Tonga", "Tonga"],
+        "tr" => ["Turc", "Türkçe", "Turkish"],
+        "ts" => ["Tsonga", "xiTsonga", "Tsonga"],
+        "tt" => ["Tatar", "татарча ; tatarça ;تاتارچا", "Tatar"],
+        "tw" => ["Twi", "Twi", "Twi"],
+        "ty" => ["Tahitien", "Reo Mā`ohi", "Tahitian"],
+        "ug" => ["Ouïghour", "Uyƣurqə ; ئۇيغۇرچ", "Uighur"],
+        "uk" => ["Ukrainien", "українська мова", "Ukrainian"],
+        "ur" => ["Ourdou", "اردو", "Urdu"],
+        "uz" => ["Ouzbek", "O'zbek ; Ўзбек ; أۇزبېك", "Uzbek"],
+        "ve" => ["Venda", "tshiVenḓa", "Venda"],
+        "vi" => ["Vietnamien", "Tiếng Việt", "Viêt Namese"],
+        "vo" => ["Volapük", "Volapük", "Volapük"],
+        "wa" => ["Wallon", "Walon", "Walloon"],
+        "wo" => ["Wolof", "Wollof", "Wolof"],
+        "xh" => ["Xhosa", "isiXhosa", "Xhosa"],
+        "yi" => ["Yiddish", "ייִדיש", "Yiddish"],
+        "yo" => ["Yoruba", "Yorùbá", "Yoruba"],
+        "za" => ["Zhuang", "Saɯ cueŋƅ ; Saw cuengh", "Zhuang"],
+        "zh" => ["Chinois", "中文, 汉语, 漢語", "Chinese"],
+        "zu" => ["Zoulou", "isiZulu", "Zulu"],
+    ];
+}
\ No newline at end of file
diff --git a/src/Manager/LanguagesManager.php b/src/Manager/LanguagesManager.php
new file mode 100644
index 0000000000000000000000000000000000000000..1a3c1a1674911f847e3524e7457aa1e6c47d8afa
--- /dev/null
+++ b/src/Manager/LanguagesManager.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Manager;
+
+use App\Entity\Entry;
+use App\Entity\Label;
+use App\Entity\User;
+use App\Languages\LanguagesIso;
+use Doctrine\Persistence\ManagerRegistry;
+use JsonSchema\Validator;
+use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Routing\Annotation\Route;
+use Symfony\Component\Serializer\SerializerAwareInterface;
+use Symfony\Component\Serializer\SerializerInterface;
+
+class LanguagesManager
+{
+    public function getLabel($code, $labelLanguage = 'fr')
+    {
+        return LanguagesIso::getLabel($code);
+    }
+}
diff --git a/templates/user/index.html.twig b/templates/user/index.html.twig
index 5a69738b6fca3f6b24d81a0e7e91e8321c7c54a2..9c57380d0beef7bcebd08a4391a4273e3cb8063d 100644
--- a/templates/user/index.html.twig
+++ b/templates/user/index.html.twig
@@ -37,8 +37,8 @@
                                     <td>{{ user.activePersonalStats  ? '<i class="bi bi-check text-success"></i>' : '<i class="bi bi-x text-danger"></i>' }}</td>
                                     <td>{{ user.shareDataWithOtherUsers  ? '<i class="bi bi-check text-success"></i>' : '<i class="bi bi-x text-danger"></i>' }}</td>
                                     <td>{{ user.shareDataWithResearchers  ? '<i class="bi bi-check text-success"></i>' : '<i class="bi bi-x text-danger"></i>' }}</td>
-                                    <td>{{ user.formattedLanguage(user.nativeLanguage) }}</td>
-                                    <td>{{ user.formattedLanguage(user.appLanguage) }}</td>
+                                    <td>{{ languages.label(user.nativeLanguage) }}</td>
+                                    <td>{{ languages.label(user.appLanguage) }}</td>
                                     <td>{{ user.studiedLanguages|join('<br>')|raw }}</td>
                                     <td>
                                         {% if user.enabled %}
diff --git a/templates/user/showProfile.html.twig b/templates/user/showProfile.html.twig
index dc830896abc89e824c1b55c34431409fb43bde97..5d6c184e19879bac8e5811a202f0bf70ce7d6b24 100644
--- a/templates/user/showProfile.html.twig
+++ b/templates/user/showProfile.html.twig
@@ -48,11 +48,11 @@
                         </tr>
                         <tr>
                             <td>Langue</td>
-                            <td>{{ user.formattedLanguage(user.nativeLanguage) }}</td>
+                            <td>{{ languages.label(user.nativeLanguage) }}</td>
                         </tr>
                         <tr>
                             <td>Langue interface</td>
-                            <td>{{ user.formattedLanguage(user.appLanguage) }}</td>
+                            <td>{{ languages.label(user.appLanguage) }}</td>
                         </tr>
                         <tr>
                             <td style="padding-top: 12px">Biographie</td>
@@ -60,7 +60,7 @@
                                 <table class="mb-2">
                                     {% for studiedLanguage in user.studiedLanguages %}
                                         <tr>
-                                            <td><strong>- {{ user.getFormattedLanguage(studiedLanguage.language) }}, {{ studiedLanguage.level }}</strong></td>
+                                            <td><strong>- {{ languages.label(studiedLanguage.language) }}, {{ studiedLanguage.level }}</strong></td>
                                             <td style="padding-left: 5px"><a title="Modifier" href="{{ path('app_studied_language_edit', {id: studiedLanguage.id}) }}" class="btn btn-xs btn-dark"><i class="bi-pencil"></i></a></td>
                                             <td>{{ include('studied_language/_delete_form.html.twig') }}</td>
                                         </tr>