2026 · PHP · JavaScript · Apache · Cockpit CMS

i18n em PHP estático à escala do OVH

Uma stack i18n que funciona em hosting partilhado barato onde o QSA do mod_rewrite parte: parsing do URL em PHP + reescritor de links em JS no boot. Sem frameworks, sem build step.

Ver no GitHub
i18n em PHP estático à escala do OVH

A maioria das stacks i18n assume uma framework real. Precisávamos de versões PT e ES de um site PHP quase estático em hosting partilhado OVH, onde a flag QSA do mod_rewrite às vezes deixa cair query strings antes de o PHP as ver.

Duas peças:

  1. Server-side: um helper lang() que lê $_GET['lang'] primeiro, faz fallback para um regex contra $_SERVER['REQUEST_URI'] para /pt/ ou /es/. Cinto e suspensórios — funciona quer o rewrite passe a QS ou não.
  2. Client-side: 12 linhas de JS no boot que detectam o locale do URL e reescrevem todos os <a href="/..."> internos para prefixar com /pt/ ou /es/. O mesmo locale persiste em cada clique interno.

Sem React, sem Next, sem biblioteca de router. Três locales (EN, PT, ES) assentes num Cockpit headless que guarda as strings traduzidas. O sitemap.php emite todas as três variantes de URL com alternates hreflang.

Stack aborrecida. Entrega rápido. Funciona em hosting que custa 4€/mês.