Texte et outils quotidiens · Boîte à outils de texte
Pourquoi les majuscules ne sont pas seulement de A à Z : ß, le mappage de cas turc i et Unicode
· Contexte
unicode conversion de cas Identifiants localisation
Explique pourquoi les majuscules et les minuscules sont définies par les tableaux Unicode plutôt que par l'arithmétique sur les lettres, avec les exceptions bien connues — ß devenant SS, le ı sans point turc et le sigma final grec — et ce que cela signifie pour tout convertisseur basé sur un navigateur.
STRASSE et la lettre qui a grandi — pourquoi la majuscule « straße » modifie le nombre de caractères
Collez `straße` dans un convertisseur et mettez-le en majuscule : JavaScript produit `STRASSE`. Le résultat est visiblement plus long car le s dièse minuscule est mappé sur deux lettres majuscules par l'opération par défaut utilisée ici. Une règle de validation qui suppose que la conversion de casse préserve le nombre de caractères peut donc rejeter, tronquer ou mal aligner un texte allemand par ailleurs valide.
Le sens inverse ne reconstruit pas la source. La mise en minuscule `STRASSE` donne `strasse`, et non `straße`, car la séquence majuscule représente également une paire ordinaire de lettres s. La conversion de casse est par conséquent une transformation de texte et non un encodage réversible. Conservez l’orthographe originale chaque fois que l’identité, la fidélité d’affichage ou la comparaison exacte sont importantes.
Mappage de casse sous forme de tableau, pas de formule : comment Unicode définit des mappages de casse simples et complets pour chaque lettre majuscule
Le code ASCII enseigne souvent un modèle pratique : les lettres latines majuscules et minuscules occupent des plages prévisibles, donc un décalage numérique apparaît pour les relier. Ce modèle cesse d'être utile une fois que le texte contient des lettres en dehors de ces plages ou qu'un mappage produit plus d'un caractère de sortie. Le convertisseur appelle donc des méthodes de casse de chaîne JavaScript au lieu d'effectuer une arithmétique de lettre.
Le référentiel n'expose pas les tables de mappage Unicode et ne distingue pas les mappages simples et complets, ces détails ne doivent donc pas être présentés comme des fonctionnalités de cet outil. Son contrat observable est plus étroit : `toUpperCase()` et `toLowerCase()` délèguent au moteur du navigateur. Les résultats doivent être testés dans les environnements où le texte converti sera réellement consommé.
La conversion de casse utilise les mappages de caractères fournis par le moteur, et non l'arithmétique ou les tableaux exposés par cet outil.
Un résultat de changement de longueur affecte plus qu'un compteur à côté d'une entrée. Les décalages stockés, les plages de sélection, les surbrillances et les positions du curseur calculés avant la conversion peuvent ne plus pointer vers le texte souhaité par la suite. Le même risque s'applique à tout flux de travail qui alloue de l'espace de sortie à partir de la longueur d'entrée ou suppose qu'un caractère source correspond toujours à un caractère de résultat.
L'aller-retour peut également perdre des distinctions même lorsqu'un exemple particulier conserve la même longueur visible. Plusieurs orthographes sources peuvent converger vers une forme majuscule, laissant l'opération en minuscules sans suffisamment d'informations pour choisir l'original. Comparez les valeurs transformées uniquement lorsque cette perte est acceptable ; sinon, conservez les originaux et utilisez une stratégie de comparaison conçue pour les exigences du produit.
Mappages à changement de longueur et raisons pour lesquelles la reconversion ne peut pas toujours restaurer la source
Le sigma grec fournit un avertissement différent. Le grec minuscule utilise des formes sigma qui peuvent varier selon la position dans un mot, de sorte que le changement de casse ne peut pas toujours être décidé à partir d'un caractère isolé. JavaScript reçoit la chaîne complète, ce qui permet à son comportement intégré en minuscules de prendre en compte le texte environnant plutôt que de remplacer chaque sigma majuscule par un glyphe fixe.
Testez sigma à l'intérieur de mots complets, et pas seulement sous la forme d'un échantillon d'un seul caractère. La ponctuation, les espaces et les limites des mots font partie des entrées évaluées par le moteur, et leur modification peut modifier le résultat en minuscules. Pour l'examen de la localisation, conservez l'intégralité de la phrase utilisée par l'interface et comparez cette phrase avec une traduction approuvée plutôt que d'inspecter uniquement les points de code.
Le sigma grec montre que la casse peut dépendre du texte environnant
Le turc distingue les i avec points et sans points d'une manière que la conversion de casse par défaut, indépendante des paramètres régionaux, ne modélise pas comme un comportement spécifique au turc. La configuration de ToolAcre indique explicitement que son mappage est indépendant des paramètres régionaux et que les i turcs avec et sans points ne sont pas dans une casse spéciale. Un résultat apparemment plausible ne constitue donc pas une preuve que les noms, adresses ou chaînes d’interface ont été correctement convertis pour les lecteurs turcs.
La réponse pratique est de ne pas ajouter de substitutions après une conversion générique. De tels remplacements peuvent endommager le texte multilingue tout en manquant de contexte. Utilisez une opération prenant en compte les paramètres régionaux dans un logiciel dont les paramètres régionaux sont connus et faites examiner le contenu turc ou azéri dans ce paramètre. Dans ce convertisseur, traitez les i exemples comme des démonstrations de la limitation documentée.
Turc avec et sans points, j'ai besoin d'une gestion adaptée aux paramètres régionaux que ce convertisseur ne fournit pas
ToolAcre implémente UPPER et lower en appelant les méthodes de chaîne JavaScript correspondantes sur l'entrée complète. Il ne transmet pas de paramètres régionaux, ne charge pas de dictionnaire de langue et ne demande pas de conversion côté serveur. Le résultat est donc le résultat de cas par défaut du moteur de navigateur, ce qui est utile pour inspecter le comportement ordinaire des applications mais pas pour certifier la typographie spécifique à une langue.
La distinction est importante lors de la reproduction d'un bug. Enregistrez la chaîne source exacte, la transformation sélectionnée et la chaîne résultante au lieu de signaler uniquement que la majuscule semblait incorrecte. Si le code de production utilise les mêmes méthodes JavaScript par défaut, le convertisseur propose une comparaison compacte. Si la production utilise des API compatibles avec les paramètres régionaux, la correspondance avec cette page ne constitue pas le test d'acceptation pertinent.
Ce que ceci ne couvre pas — les règles de casse des titres pour les digraphes et l'histoire de la capitale ẞ
Le bouton Title Case est une autre transformation avec un contrat volontairement limité. Il trouve des séries de lettres, combinant des marques ou des apostrophes, met en majuscule le premier caractère et met le reste en minuscule. Il n'y a pas de dictionnaire de langue ni d'exceptions dans le guide de style, donc les acronymes et les noms propres peuvent changer, tandis que les petits mots tels que `of` et `the` sont en majuscules comme les autres mots.
Cet article ne s'appuie pas sur l'histoire proposée dans le plan d'un s dièse majuscule ou sur des règles plus larges pour les digraphes de boîtier de titre, car ni l'un ni l'autre n'est établi par les sources inspectées. Ces sujets peuvent être utiles avec des références indépendantes, mais ils n'expliquent pas la fonction livrée. Ici, le conseil fiable consiste à examiner chaque titre converti et à restaurer manuellement l’orthographe intentionnelle.
Comportement de la casse du titre dans cet outil, sans historique alphabétique non pris en charge
Essayez trois vérifications ciblées dans le convertisseur de casse : majuscule `straße`, minuscule un mot grec contenant un sigma majuscule et exécutez des échantillons i avec et sans points dans les deux sens. Observez les chaînes réelles plutôt que de les prédire à partir de l'anglais. Utilisez ensuite Annuler entre les expériences pour que chaque résultat commence à partir du texte original au lieu d'une transformation précédente avec perte.
La leçon plus large est opérationnelle : la conversion de cas peut modifier la longueur, réduire les distinctions et dépendre d'un contexte linguistique qu'une opération par défaut ne connaît pas. Utilisez l’outil pour exposer ces comportements, et non pour promettre une localisation universelle correcte. Préservez le texte source, testez des phrases réelles complètes et appliquez une révision adaptée aux paramètres régionaux chaque fois qu'un résultat spécifique à la langue est requis.