Strumenti di testo e di uso quotidiano · Text Toolkit
Perché le lettere maiuscole non sono solo A–Z: ß, la i turca e la mappatura delle maiuscole e minuscole Unicode
· Sfondo
unicode conversione dei casi localizzazione
Spiega perché le lettere maiuscole e minuscole sono definite dalle tabelle Unicode anziché dall'aritmetica delle lettere, con le ben note eccezioni - ß diventa SS, il turco senza punto ı e il greco finale sigma - e cosa significa per qualsiasi convertitore basato su browser.
STRASSE e la lettera che è cresciuta: perché "straße" maiuscolo cambia il conteggio dei caratteri
Incolla `straße` in un convertitore e scrivilo in maiuscolo: JavaScript produce `STRASSE`. Il risultato è visibilmente più lungo perché la s diesis minuscola viene mappata su due lettere maiuscole dall'operazione predefinita utilizzata qui. Una regola di convalida che presuppone che la conversione maiuscole e minuscole preservi il conteggio dei caratteri può quindi rifiutare, troncare o disallineare un testo tedesco altrimenti valido.
La direzione inversa non ricostruisce la fonte. Minuscolo `STRASSE` restituisce `strasse`, non `straße`, perché la sequenza maiuscola rappresenta anche una normale coppia di lettere s. La conversione del caso è di conseguenza una trasformazione del testo, non una codifica reversibile. Mantieni l'ortografia originale ogni volta che l'identità, la fedeltà di visualizzazione o il confronto esatto sono importanti.
Mappatura delle maiuscole come tabella, non come formula: come Unicode definisce la mappatura delle maiuscole semplice e completa per ogni lettera maiuscola
Il codice ASCII spesso insegna uno schema conveniente: le lettere latine maiuscole e minuscole occupano intervalli prevedibili, quindi appare un offset numerico per collegarle. Questo modello smette di essere utile una volta che il testo contiene lettere al di fuori di tali intervalli o una mappatura produce più di un carattere di output. Il convertitore pertanto chiama i metodi JavaScript string case invece di eseguire l'aritmetica delle lettere.
Il repository non espone tabelle di mappatura Unicode né distingue tra mappature semplici e complete, quindi tali dettagli non dovrebbero essere presentati come funzionalità di questo strumento. Il suo contratto osservabile è più ristretto: `toUpperCase()` e `toLowerCase()` delegano al motore del browser. I risultati dovrebbero essere testati negli ambienti in cui verrà effettivamente utilizzato il testo convertito.
La conversione delle maiuscole e minuscole utilizza le mappature dei caratteri fornite dal motore, non l'aritmetica o le tabelle esposte da questo strumento
Un risultato che modifica la lunghezza influisce su più di un contatore accanto a un input. Gli offset memorizzati, gli intervalli di selezione, le evidenziazioni e le posizioni del cursore calcolati prima della conversione potrebbero non puntare più al testo desiderato in seguito. Lo stesso rischio si applica a qualsiasi flusso di lavoro che alloca spazio di output dalla lunghezza di input o presuppone che un carattere di origine corrisponda sempre a un carattere di risultato.
Il andata e ritorno può anche far perdere le distinzioni anche quando un particolare esempio mantiene la stessa lunghezza visibile. Diverse ortografie di origine possono convergere su una forma maiuscola, lasciando l'operazione minuscola senza informazioni sufficienti per scegliere l'originale. Confronta i valori trasformati solo quando tale perdita è accettabile; altrimenti conservare gli originali e utilizzare una strategia di confronto progettata per i requisiti del prodotto.
Mappature che modificano la lunghezza e perché la riconversione non può sempre ripristinare l'origine
Il sigma greco fornisce un avvertimento diverso. Il greco minuscolo utilizza forme sigma che possono variare con la posizione in una parola, quindi il cambio di maiuscole e minuscole non può sempre essere deciso da un carattere isolato. JavaScript riceve la stringa completa, consentendo al suo comportamento incorporato di minuscolo di considerare il testo circostante anziché sostituire ogni sigma maiuscolo con un glifo fisso.
Prova sigma all'interno di parole complete, non solo come campione di un singolo carattere. La punteggiatura, gli spazi e i limiti delle parole fanno parte dell'input valutato dal motore e modificarli può alterare il risultato in minuscolo. Per la revisione della localizzazione, preserva l'intera frase utilizzata dall'interfaccia e confrontala con una traduzione approvata anziché esaminare solo i punti di codice.
Il sigma greco mostra che le lettere minuscole possono dipendere dal testo circostante
Il turco distingue la i puntata da quella senza punto in modo tale che la conversione delle maiuscole e minuscole predefinita e indipendente dalle impostazioni locali non si modella come comportamento specifico del turco. La configurazione ToolAcre dice esplicitamente che la sua mappatura è indipendente dalle impostazioni locali e che i turchi punteggiati e senza punti non sono in caratteri speciali. Un risultato apparentemente plausibile non è quindi la prova che nomi, indirizzi o stringhe di interfaccia siano stati convertiti correttamente per i lettori turchi.
La risposta pratica non è aggiungere sostituzioni dopo una conversione generica. Tali sostituzioni possono danneggiare il testo in lingue miste e comunque perdere il contesto. Utilizzare un'operazione che riconosce le impostazioni locali nel software di cui si conosce la locale e far revisionare i contenuti turchi o azeri in tale impostazione. In questo convertitore, tratta gli esempi i come dimostrazioni della limitazione documentata.
Turco punteggiato e senza punto, richiedo una gestione locale che questo convertitore non fornisce
ToolAcre implementa UPPER e inferiori chiamando i metodi di stringa JavaScript corrispondenti sull'input completo. Non trasmette una locale, non carica un dizionario della lingua né richiede una conversione lato server. L'output è quindi il risultato del caso predefinito del motore del browser, utile per ispezionare il comportamento ordinario dell'applicazione ma non per certificare la tipografia specifica della lingua.
La distinzione è importante quando si riproduce un bug. Registra l'esatta stringa di origine, la trasformazione selezionata e la stringa risultante invece di segnalare solo che le maiuscole sembravano errate. Se il codice di produzione utilizza gli stessi metodi JavaScript predefiniti, il convertitore offre un confronto compatto. Se la produzione utilizza API compatibili con le impostazioni locali, la corrispondenza di questa pagina non è il test di accettazione rilevante.
Ciò che questo non copre: le regole per l'uso delle maiuscole dei digrafi e la storia della capitale ẞ
Il pulsante Titolo maiuscolo è un'altra trasformazione con un contratto volutamente limitato. Trova sequenze di lettere, combinando segni o apostrofi, rende maiuscolo il primo carattere e minuscolo il resto. Non ha dizionario linguistico o eccezioni nella guida di stile, quindi gli acronimi e i nomi propri possono cambiare, mentre le parole piccole come `of` e `the` sono scritte in maiuscolo come le altre parole.
Questo articolo non si basa sulla storia proposta dallo schema della s maiuscola o su regole più ampie per i digrammi del titolo, perché nessuno dei due è stabilito dalle fonti ispezionate. Questi argomenti possono essere utili con riferimenti indipendenti, ma non spiegano la funzione fornita. In questo caso la guida affidabile è rivedere ogni intestazione convertita e ripristinare manualmente l'ortografia intenzionale.
Comportamento delle maiuscole e minuscole in questo strumento, senza cronologia alfabetica non supportata
Prova tre controlli mirati nel convertitore di maiuscole e minuscole: maiuscolo `straße`, minuscolo una parola greca contenente maiuscola sigma ed esegui campioni i punteggiati e senza punti in entrambe le direzioni. Osserva le stringhe effettive anziché prevederle dall'inglese. Quindi utilizza Annulla tra gli esperimenti in modo che ogni risultato inizi dal testo originale anziché da una precedente trasformazione con perdita di dati.
La lezione più ampia è operativa: la conversione dei casi può modificare la lunghezza, collassare le distinzioni e dipendere dal contesto linguistico che un'operazione predefinita non conosce. Utilizza lo strumento per esporre tali comportamenti, non per promettere la correttezza universale della localizzazione. Conserva il testo di origine, testa frasi reali complete e applica la revisione basata sulle impostazioni locali ovunque sia richiesto un risultato specifico per la lingua.