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.
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:
- 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. - 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.