Convertir la casse
Le convertisseur de casse réécrit des identifiants entre camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE et neuf autres, dans votre navigateur. La conversion est triviale ; la partie difficile consiste à découper l’entrée en mots — XMLHttpRequest fait trois mots, user2fa en fait trois, et un convertisseur qui se trompe là-dessus produit une sortie que personne ne veut.
Comment fonctionne Convertir la casse ?
Toute convention de nommage est la même liste de mots rendue différemment ; convertir de l’une à l’autre, c’est un seul problème — découper l’entrée en mots — suivi d’un assemblage trivial. Toute la différence entre convertisseurs tient dans la première étape.
Trois frontières de mots, classées selon la fréquence à laquelle elles sont manquées
Une transition du minuscule vers le majuscule, c’est l’évidence même : userName fait deux mots. Un acronyme suivi d’un mot, c’est celle où la plupart des convertisseurs se trompent : XMLHttpRequest se décompose en XML Http Request, et non en un seul mot ni en huit. Une transition de lettre à chiffre, c’est celle à laquelle personne ne pense : user2fa se décompose en user 2 fa, d’où le fait que user2fa devienne user_2_fa plutôt que user2fa.
Les séparateurs — espace, tiret bas, tiret, point, barre oblique — sont tous traités de la même façon, et c’est ce qui permet à l’outil d’accepter une entrée dans n’importe quelle convention sans qu’on lui précise laquelle. Vous ne choisissez pas de format source, parce qu’il n’y a rien à choisir.
Le I turc
"I".toLocaleLowerCase() donne "ı" — un i sans point — en turc et en azéri, et non "i". C’est correct pour ces langues et catastrophique pour le code : toute comparaison insensible à la casse contre une chaîne ASCII échoue, et un identifiant nommé ID devient quelque chose qu’un compilateur ne reconnaît pas. La casse est donc gérée ici indépendamment de la locale par défaut, la variante sensible à la locale restant disponible pour la prose, où c’est la bonne réponse.
Les styles de prose changent la casse, pas la structure
La casse de phrase et la casse de titre agissent sur le texte lui-même plutôt que sur ses mots : la ponctuation, l’espacement et les acronymes existants survivent. La casse de titre laisse les mots secondaires — a, an, the, of, to et les autres — en minuscules sauf s’ils sont premiers ou derniers, règle que partagent la plupart des guides de style anglais même s’ils divergent sur la liste.
La préservation des acronymes est un vrai choix
user_id en PascalCase donne UserId ou UserID selon les conventions de votre langage — le guide de style de Go impose la seconde, celui de C# la première pour les acronymes de deux lettres comme pour les plus longs. Aucune des deux n’est fausse, d’où une option à bascule plutôt qu’une décision prise à votre place.
Entrée
XMLHttpRequest
Converti
words XML | Http | Request camelCase xmlHttpRequest snake_case xml_http_request CONSTANT XML_HTTP_REQUEST kebab-case xml-http-request
Quelles options et quels cas limites Convertir la casse prend en charge ?
| Paramètre | Type | Valeur par défaut | Comportement et cas limites |
|---|---|---|---|
| camelCase | camel | userFirstName | Variables et fonctions JavaScript et Java. Premier mot en minuscule, le reste en majuscules. |
| PascalCase | pascal | UserFirstName | Noms de types dans presque tous les langages : classes, interfaces, composants React. |
| snake_case | snake | user_first_name | Identifiants Python et Ruby, ainsi que noms de colonnes SQL dans Postgres. |
| CONSTANT_CASE | constant | USER_FIRST_NAME | Variables d’environnement et constantes de compilation en C, Java, Go et JavaScript. |
| kebab-case | kebab | user-first-name | URL, propriétés personnalisées CSS et noms de classes, noms de paquets npm. N’est pas un identifiant légal dans la plupart des langages. |
| Train-Case | train | User-First-Name | Noms d’en-têtes HTTP — Content-Type, X-Request-Id — qui ne sont pas sensibles à la casse mais sont conventionnellement écrits ainsi. |
| dot.case | dot | user.first.name | Clés de configuration imbriquées, clés de messages i18n, et espaces de noms de style de paquets Java. |
| path/case | path | user/first/name | Segments de chemin d’URL et chemins de fichiers construits à partir d’un nom. |
| Majuscule initiale | sentence | User first name | Prose. Met une majuscule au début de chaque phrase et laisse le reste tel quel, de sorte que les acronymes existants sont préservés. |
| Casse De Titre | title | User First Name | Titres. Les mots mineurs restent en minuscules sauf s’ils sont en première ou dernière position. |
| minuscules | lower | user first name | Toute la chaîne en minuscules, la ponctuation et l’espacement sont inchangés. |
| MAJUSCULES | upper | USER FIRST NAME | Toute la chaîne en majuscules. |
| aLtErNé | alternating | uSeR fIrSt nAmE | Alternance de casse, caractère par caractère. |
| iNVERSÉ | inverse | uSER fIRST nAME | Chaque lettre est inversée de casse. |
Questions fréquentes
Pourquoi XMLHttpRequest a-t-il été découpé en trois mots ?
Parce qu’il en compte trois. La règle veut qu’une suite de majuscules suivie d’une majuscule puis d’une minuscule termine le mot à cette frontière : XMLH-ttp devient XML | Http. Sans elle, vous obtenez soit un seul mot — xmlhttprequest — soit huit, chaque majuscule commençant un nouveau mot : x_m_l_http_request. Les deux sont faux, et les deux sont courants.
Faut-il lui préciser le format de votre entrée ?
Non, et il n’existe délibérément aucune option pour cela. Tous les séparateurs sont traités pareil et chaque frontière de casse est détectée, donc camelCase, snake_case, kebab-case, dot.case et la prose ordinaire se découpent tous en la même liste de mots. Une entrée mixte fonctionne aussi, ce qui compte quand vous convertissez une liste que quelqu’un a assemblée à partir de trois bases de code.
Pourquoi une option de locale pour la mise en minuscules ?
Parce que "I".toLocaleLowerCase() donne "ı" — un i sans point — en turc et en azéri. C’est linguistiquement correct et désastreux pour les identifiants : une comparaison ASCII contre "id" échoue, et un code qui met l’entrée utilisateur en minuscules pour la comparer à un mot-clé cesse de fonctionner pour les utilisateurs turcs. L’option est désactivée par défaut parce que le travail habituel ici, c’est du code, et activée pour la prose dans ces langues.
UserId ou UserID ?
Cela dépend du langage. Le guide de style de Go impose UserID et met une majuscule à chaque sigle — APIURL, HTTPServer. C# et Java utilisent UserId, en ne capitalisant que la première lettre d’un acronyme de plus de deux caractères. Aucune n’est plus correcte ; utilisez celle qui correspond au code environnant, et c’est pourquoi l’outil propose une bascule.
Peut-il convertir tout un fichier d’identifiants ?
Une par ligne, oui — chaque ligne est convertie indépendamment, donc vous pouvez coller une colonne tirée d’un schéma ou d’une configuration et récupérer le tout. Ce n’est pas un renommage qui tient compte du code : l’outil ne sait pas quels mots d’une ligne sont des identifiants et lesquels sont de la syntaxe, donc il convertit la ligne entière comme un seul nom.
Mon texte est-il envoyé quelque part ?
Non. C’est de la manipulation de chaînes, qui s’exécute dans votre navigateur. Les identifiants que les gens convertissent décrivent des systèmes internes — noms de tables, noms de champs, feature flags — ce qui n’est pas exactement secret, mais n’est pas non plus quelque chose à confier sans raison à un serveur inconnu.