Plugin multilíngue

Plugin multilíngue

Classe PHP para Transliteração de Slugs Multilíngues

Trata-se de uma classe PHP responsável pela transliteração de slugs para diferentes idiomas, sendo especialmente utilizada no PSA Schema — uma ferramenta voltada para a implementação de dados estruturados com Schema.org em projetos WordPress.

Ele não se refere a “alfabetos” no sentido linguístico tradicional, mas sim a mapeamentos de caracteres de escritas não latinas para caracteres ASCII (latinos), visando gerar slugs compatíveis com URLs.

✅ Tipos de “alfabetos” e sistemas de escrita suportados:

1. Alfabeto Cirílico (Russo)

  • Inclui letras do alfabeto cirílico maiúsculas e minúsculas.
  • Exemplos: А, Б, В, Г, Д, Е, Ё, Ж, …, até я.
  • Mapeia para versões latinas equivalentes:
А → A
Б → B
Ю → Yu
я → ya

Usado na função: transliterateRussian()

Ex: Russo

Плагин структурированных данных

{
"@type": "WebPageElement",
"name": "Плагин структурированных данных",
"url": "https://schema.vitapotentia.com/plugin-multilingue/#plagin-strukturirovannyh-dannyh",
"position": 4
},

 

2. Escrita Árabe

  • Caracteres árabes comuns usados em textos em árabe (como أ، ب، ت، ث, …).
  • Exemplos:
أ → a
ب → b
ح → h
ش → sh

Acentuações e variações também são mapeadas. Espaços viram hífens (-) e pontuações são removidas.

Usado na função: transliterateArabic()

Exemplo Árabe

إضافة البيانات المنظمة

 

3. Escrita Chinesa (Hanzi Hanzi Simplificados)

  • Caracteres chineses simplificados comuns.
  • Exemplos:
SEO → seo
数据 → shuju (dados)
结构化 → jiegouhua (estruturado)
博客 → boke (blog)

Possui um mapeamento básico de palavras chinesas para pinyin (romanização). Para caracteres não cobertos, usa iconv() ou bibliotecas futuras.

Usado na função: transliterateChinese()

4. Escrita Japonesa (Kanji + KatakanaHiragana)

  • Inclui alguns kanji comuns e termos japoneses.
  • Exemplos:
画像 → gazou (imagem)
ブログ → burogu (blog)
最適化 → saitekika (otimização)

Usa romanização (romaji) para transformar os caracteres em texto latino.

Usado na função: simplifyJapanese()

🌍 Outros Idiomas (Latim com acentos)

Para idiomas como português, francês, alemão, etc., o código usa:

  • Se disponível: \Transliterator::create('Any-Latin; Latin-ASCII');
  • Ou como alternativa: iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $slug);

Isso converte letras com acento/diacrítico:

ç → c
ñ → n
à → a
ö → o
ž → z

🔁 Resumo dos AlfabetosIdiomas Suportados

Idioma / Escrita Função Objetivo
Cirílico (Russo) transliterateRussian() Converter russo para slug
Árabe transliterateArabic() Converter árabe para slug
Chinês (Hanzi) transliterateChinese() Converter chinês para pinyin
Japonês (Kanji) simplifyJapanese() Converter japonês para romaji
Latim com acentos Transliterator ou iconv Slug universal

🧠 Notas Adicionais

O objetivo é criar URLs amigáveis (como exemplo.com/artigo-de-teste) mesmo para textos em idiomas não latinos.

Isso é essencial para:

  • Schema.org
  • Sitemaps multilíngues
  • Plugins SEO
  • Tradução de conteúdo

Também é possível expandir os mapeamentos para incluir mais palavras ou usar APIs/bibliotecas externas para maior precisão.