Ferramentas de texto e do dia a dia · Kit de ferramentas de texto
Por que maiúsculas não são apenas A – Z: ß, o mapeamento de maiúsculas i turco e Unicode
· Fundo
Unicode conversão de caso localização
Explica por que maiúsculas e minúsculas são definidas por tabelas Unicode em vez de aritmética em letras, com as exceções bem conhecidas - ß tornando-se SS, o turco sem ponto ı e o sigma final grego - e o que isso significa para qualquer conversor baseado em navegador.
STRASSE e a letra que cresceu — por que 'straße' maiúsculo altera a contagem de caracteres
Cole `straße` em um conversor e coloque-o em maiúscula: JavaScript produz `STRASSE`. O resultado é visivelmente mais longo porque o s minúsculo é mapeado para duas letras maiúsculas pela operação padrão usada aqui. Uma regra de validação que assume que a conversão de maiúsculas e minúsculas preserva a contagem de caracteres pode, portanto, rejeitar, truncar ou desalinhar texto em alemão que de outra forma seria válido.
A direção inversa não reconstrói a fonte. Colocar `STRASSE` em letras minúsculas resulta em `strasse`, não em `straße`, porque a sequência maiúscula também representa um par comum de letras s. A conversão de maiúsculas e minúsculas é, conseqüentemente, uma transformação de texto, não uma codificação reversível. Mantenha a grafia original sempre que a identidade, a fidelidade da exibição ou a comparação exata forem importantes.
Mapeamento de maiúsculas e minúsculas como uma tabela, não uma fórmula — como o Unicode define mapeamentos de maiúsculas e minúsculas simples e completos para cada letra maiúscula
O código ASCII geralmente ensina um padrão conveniente: letras latinas maiúsculas e minúsculas ocupam intervalos previsíveis, portanto, um deslocamento numérico parece conectá-las. Esse modelo deixa de ser útil quando o texto contém letras fora desses intervalos ou um mapeamento produz mais de um caractere de saída. O conversor, portanto, chama métodos de string case JavaScript em vez de realizar aritmética de letras.
O repositório não expõe tabelas de mapeamento Unicode nem distingue mapeamentos simples e completos, portanto esses detalhes não devem ser apresentados como recursos desta ferramenta. Seu contrato observável é mais restrito: `toUpperCase()` e `toLowerCase()` delegam ao mecanismo do navegador. Os resultados devem ser testados nos ambientes onde o texto convertido será realmente consumido.
A conversão de maiúsculas e minúsculas usa mapeamentos de caracteres fornecidos pelo mecanismo, não aritmética ou tabelas expostas por esta ferramenta
Um resultado que muda de comprimento afeta mais do que um contador ao lado de uma entrada. Deslocamentos armazenados, intervalos de seleção, destaques e posições do cursor calculados antes da conversão podem não apontar mais para o texto pretendido posteriormente. O mesmo risco se aplica a qualquer fluxo de trabalho que aloca espaço de saída do comprimento de entrada ou assume que um caractere de origem sempre corresponde a um caractere de resultado.
A viagem de ida e volta também pode perder distinções, mesmo quando um exemplo específico mantém o mesmo comprimento visível. Várias grafias originais podem convergir para uma forma maiúscula, deixando a operação com letras minúsculas sem informações suficientes para escolher o original. Compare os valores transformados apenas quando essa perda for aceitável; caso contrário, retenha os originais e use uma estratégia de comparação projetada para os requisitos do produto.
Mapeamentos que alteram o comprimento e por que a conversão de volta nem sempre pode restaurar a origem
O sigma grego fornece um aviso diferente. O grego minúsculo usa formas sigma que podem variar de acordo com a posição em uma palavra, portanto, a mudança de maiúsculas e minúsculas nem sempre pode ser decidida a partir de um caractere isolado. JavaScript recebe a string completa, permitindo que seu comportamento interno de letras minúsculas considere o texto circundante em vez de substituir cada sigma maiúsculo por um glifo fixo.
Teste sigma dentro de palavras completas, não apenas como uma amostra de um único caractere. Pontuação, espaços e limites de palavras fazem parte da entrada que o mecanismo avalia, e editá-los pode alterar o resultado em minúsculas. Para revisão de localização, preserve a frase inteira usada pela interface e compare-a com uma tradução aprovada, em vez de inspecionar apenas os pontos de código.
O sigma grego mostra que letras minúsculas podem depender do texto ao redor
Turco distingue i com ponto e sem ponto de uma forma que a conversão de caso padrão e independente de localidade não modela como comportamento específico do turco. A configuração ToolAcre diz explicitamente que seu mapeamento é independente do local e que turco com e sem ponto i não são casos especiais. Um resultado aparentemente plausível não é, portanto, evidência de que nomes, endereços ou cadeias de interface foram convertidos corretamente para leitores turcos.
A resposta prática é não adicionar substituições após uma conversão genérica. Essas substituições podem danificar o texto em idiomas mistos e ainda perder o contexto. Use uma operação com reconhecimento de localidade em software cuja localidade seja conhecida e faça com que o conteúdo em turco ou azeri seja revisado nessa configuração. Neste conversor, trate os i exemplos como demonstrações da limitação documentada.
Turco com pontos e sem pontos, preciso de um tratamento com reconhecimento de localidade que este conversor não fornece
ToolAcre implementa UPPER e inferior chamando os métodos de string JavaScript correspondentes na entrada completa. Ele não transmite um código de idioma, não carrega um dicionário de idioma nem solicita uma conversão no servidor. A saída é, portanto, o resultado padrão do mecanismo do navegador, que é útil para inspecionar o comportamento comum do aplicativo, mas não para certificar a tipografia específica do idioma.
A distinção é importante ao reproduzir um bug. Registre a string de origem exata, a transformação selecionada e a string resultante, em vez de relatar apenas que a capitalização parecia errada. Se o código de produção usar os mesmos métodos JavaScript padrão, o conversor oferecerá uma comparação compacta. Se a produção usar APIs com reconhecimento de localidade, corresponder a esta página não será o teste de aceitação relevante.
O que isso não cobre - regras de colocação de títulos para dígrafos e a história da capital ẞ
O botão Title Case é outra transformação com um contrato deliberadamente limitado. Ele encontra sequências de letras, combinando marcas ou apóstrofos, colocando o primeiro caractere em maiúscula e o restante em minúscula. Não possui dicionário de idioma ou exceções de guia de estilo, portanto, siglas e nomes próprios podem mudar, enquanto palavras pequenas como `of` e `the` são maiúsculas como outras palavras.
Este artigo não se baseia na história proposta do esboço de um sustenido maiúsculo ou em regras mais amplas para dígrafos de maiúsculas e minúsculas, porque nenhuma delas foi estabelecida pelas fontes inspecionadas. Esses assuntos podem ser valiosos com referências independentes, mas não explicam a função enviada. Aqui, a orientação confiável é revisar cada título convertido e restaurar a ortografia intencional manualmente.
Comportamento de maiúsculas e minúsculas nesta ferramenta, sem histórico alfabético não suportado
Tente três verificações focadas no conversor de maiúsculas e minúsculas: `straße` maiúscula, minúscula uma palavra grega contendo sigma maiúsculo e execute amostras i com e sem ponto em ambas as direções. Observe as strings reais em vez de prevê-las em inglês. Em seguida, use Desfazer entre os experimentos para que cada resultado comece no texto original em vez de uma transformação anterior com perdas.
A lição mais ampla é operacional: a conversão de casos pode mudar de comprimento, reduzir distinções e depender do contexto linguístico que uma operação padrão não conhece. Use a ferramenta para expor esses comportamentos, não para prometer correção de localização universal. Preserve o texto de origem, teste frases reais completas e aplique a revisão com reconhecimento de localidade sempre que for necessário um resultado específico do idioma.