Remover acentos e criar slugs para URL
Nomes em passaportes, endereços de e-mail, nomes de arquivo e endereços web costumam ser escritos sem acentos. Tirar o acento de é é fácil, mas o đ vietnamita, o ı turco, o ß alemão e o ø dinamarquês têm regras próprias. Este guia explica essas regras e mostra como transformar um título num slug limpo para a URL.
Dois tipos de letras com sinais
A maioria das letras acentuadas é uma letra-base mais um sinal: é é e com acento agudo, ã é a com til, ç é c com cedilha e o ệ vietnamita é e com circunflexo e um ponto embaixo. O Unicode registra como cada uma se decompõe, então ao tirar os sinais sobra a letra-base. O computador pode até guardar a mesma letra de duas formas, como um só caractere ou como a letra-base seguida de sinais separados; as duas aparecem iguais e perdem os sinais do mesmo jeito.
Outras letras não são formadas a partir de uma base: o đ vietnamita, o ı turco, o ß alemão, o ø e o æ do dinamarquês e do norueguês, o þ islandês. Tirar sinais não as muda, então cada uma precisa de uma grafia própria.
A tabela dos passaportes
As linhas de leitura mecânica no pé do passaporte usam só as letras de A a Z. O documento 9303 da OACI (ICAO), a especificação internacional de passaportes, mostra como as letras nacionais são escritas ali. É uma boa referência neutra para escrever nomes sem acentos:
| Letra | OACI Doc 9303 | Idioma |
|---|---|---|
| Á Â Ã À Ç É Ê Í Ó Ô Õ Ú | A A A A C E E I O O O U | Português |
| Ñ | N | Espanhol |
| Ä Ö Ü | AE ou A, OE ou O, UE ou U | Alemão, sueco, turco … |
| ẞ (ß) | SS | Alemão |
| Đ | D | Vietnamita, croata … |
| Ğ Ş İ I (ı) | G S I I | Turco |
| Ø Æ Å | OE, AE, AA ou A | Dinamarquês, norueguês |
Vietnamita, turco e alemão
- Vietnamita. Além dos sinais que formam vogais novas (ă, â, ê, ô, ơ, ư), cada sílaba pode ter um de cinco sinais de tom. Sem sinais («không dấu»), tiram-se todos e o đ vira d: Nguyễn Văn Đức fica Nguyen Van Duc.
- Turco. Tem i e İ com ponto, ı e I sem ponto. Sem sinais, ı vira i e İ vira I. Cuidado ao passar para minúsculas: a regra geral do Unicode transforma İ em i mais um ponto combinante (U+0307), um caractere invisível que entra em nomes de arquivo e URLs. É melhor trocar as letras turcas primeiro e só depois passar para minúsculas.
- Alemão. Sem os pontos, escreve-se ae, oe, ue: Müller fica Mueller. Para o ß, as regras oficiais da ortografia alemã (Amtliches Regelwerk, § 25 E2) mandam escrever ss quando não há ß: Straße – Strasse.
Transformar um título em slug
O slug é a parte do endereço web que dá nome à página. Um bom slug é curto, em minúsculas e com hífens entre as palavras:
| Título | Slug |
|---|---|
| Pão de queijo à mineira | pao-de-queijo-a-mineira |
| Como declarar o Imposto de Renda: 10 dicas | como-declarar-o-imposto-de-renda-10-dicas |
| Ação e reação | acao-e-reacao |
| İstanbul'da Gezilecek Yerler | istanbulda-gezilecek-yerler |
- Hífen, não sublinhado. O guia do Google sobre a estrutura de URLs recomenda hífens entre as palavras e palavras legíveis em vez de números de ID longos.
- Apóstrofos somem. d'água vira dagua, e don't vira dont, não don-t.
- Acentos deixam o endereço longo. O navegador os mostra, mas um link copiado os leva codificados por porcentagem: no exemplo do Google, gemüse vira gem%C3%BCse.
- Não mude slugs publicados à toa. O endereço antigo deixa de funcionar se você não o redirecionar de forma permanente (301) para o novo.
Perguntas frequentes
Escrever um nome sem acento é errado?
Não onde o sistema não aceita acentos, como as linhas de leitura mecânica do passaporte ou um sistema de reservas antigo. Onde dá para usar, a grafia correta mantém os acentos.
O ç vira c ou ss na URL?
Vira c (ação → acao), que é também o que a tabela da OACI indica para Ç.
Qual deve ser o tamanho de um slug?
Não há limite fixo. Mantenha as palavras que descrevem a página e tire o resto; muitos sistemas de gestão de conteúdo também têm um tamanho máximo próprio.
Por que dois textos que parecem iguais não batem?
Um pode guardar o é como um só caractere e o outro como e mais um acento combinante. Tirar os acentos, ou normalizar os dois para a mesma forma Unicode, deixa-os iguais.