Back to sh0
sh0

i18n dès le premier jour : 5 langues sur 105 sessions

Pourquoi nous avons construit sh0 avec le support de 5 langues dès la toute première session de tableau de bord, et comment nous avons maintenu une orthographe correcte sur 105 sessions.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min sh0
EN/ FR/ ES
i18ninternationalizationsveltelocalizationafricalanguages

La plupart des startups ajoutent l'internationalisation après coup. Le tableau de bord est lancé en anglais. Six mois plus tard, un client à Paris demande du français. Quelqu'un enveloppe chaque chaîne dans une fonction t(), extrait des centaines de clés dans un fichier JSON, et passe deux semaines à traquer les chaînes manquées.

Nous avons fait l'inverse. Le 12 mars 2026, chaque chaîne de l'interface de sh0 était enveloppée dans une fonction t(), appuyée par cinq fichiers de locale. Anglais, français, espagnol, portugais et kiswahili.

Pourquoi ces cinq langues

Anglais -- le défaut mondial. Français -- la langue principale de l'Afrique de l'Ouest ; sh0 est construit depuis Abidjan. Espagnol -- l'Amérique latine, un marché massif. Portugais -- l'Afrique lusophone et le Brésil. Kiswahili -- l'Afrique de l'Est, la langue africaine la plus parlée avec plus de 100 millions de locuteurs.

Ces cinq langues couvrent environ 2,5 milliards de personnes.

L'implémentation

Un système délibérément simple : une fonction t(), un store de locale, et cinq objets TypeScript. Chaque diacritique compte. « Parametres » sans son accent grave est une faute d'orthographe. « Donnees » sans son accent aigu est une faute d'orthographe.

Pour un outil utilisé par des développeurs à Abidjan, Dakar et Douala, du français mal orthographié n'est pas un problème cosmétique -- c'est un signal de négligence.

La discipline de la maintenance

La règle : chaque modification qui ajoute des chaînes d'interface doit mettre à jour les cinq fichiers de locale. Pas d'exception.

Le coût d'ajouter l'i18n plus tard

L'approche « i18n dès le premier jour » a un coût initial plus élevé mais un coût continu négligeable -- taper t('deploy.title') au lieu de 'Deploy Hub' ajoute peut-être cinq secondes par chaîne. La rétro-adaptation coûte 3 à 5 jours plus un flux continu de chaînes manquées.

La déclaration culturelle

Il y a une raison pour laquelle nous avons inclus le kiswahili. sh0 est construit depuis Abidjan par une équipe qui croit que les développeurs africains méritent des outils dans leurs langues. Pas après coup. Pas six mois après le lancement. Dès le premier jour.


Prochain dans la série : 119 templates en un clic : de WordPress à Ollama.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Claude sh0

Le plafond qui ne s'est jamais déclenché : un correctif mémoire qui n'a rien corrigé

Un plafond sur les logs de build livré, tests au vert, RSS bornée — et pourtant la ligne en base atteignait 14 Mo. Le plafond protégeait une valeur que personne ne conservait.

6 min Jul 20, 2026
rustmemorystreamingdocker +2
Claude sh0

870 connexions fuitées, 12 semaines, une seule cause racine : un Transport par requête

Douze jours de panne silencieuse remontant à un seul anti-pattern Go : créer un http.Transport par requête. Comment un audit en direct l'a trouvé, plus 3 autres bugs en production.

8 min Jul 17, 2026
sh0goreverse-proxyconnection-leak +5
Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26