Code-native product copy means the user-visible strings your product ships live in the repository as the single source of truth, rather than in a design file that a person keeps in step by hand. globalize.now is a code-native copy management system with localization built in: copy is single-sourced in the codebase, and localizing it is the same operation instead of a separate hand-off.
Cela importe davantage maintenant qu'il y a trois ans, parce que la copie a cessé de ne changer que lorsqu'un rédacteur la change.
Qu'est-ce que la copie produit native du code ?
La copie produit native du code est une architecture, pas un processus de rédaction : le libellé approuvé et le libellé livré sont le même artefact, conservé dans le dépôt, et chaque modification arrive sous forme de diff.
La distinction est la plus facile à voir dans ce que chaque approche peut observer. Un produit avec espace de travail de référence détient le libellé quelque part en dehors du code et dépend de quelqu'un qui le pousse dedans, ou le retire, quand l'un ou l'autre côté bouge. C'est un bon endroit pour décider ce qu'un bouton devrait dire. C'est structurellement incapable de remarquer que le bouton dit maintenant quelque chose d'autre, parce que l'événement qui l'a changé était un commit et l'espace de travail n'a jamais vu le commit.
Un système natif du code inverse cela. L'unité de travail est le diff, et la question qu'il peut répondre est celle qui met réellement les équipes en difficulté : la chaîne vient de changer — était-ce intentionnel ?
Rien de cela n'est un argument sur l'endroit où la rédaction se fait. Les rédacteurs peuvent rédiger n'importe où. C'est un argument sur quelle copie est la vraie quand deux ne sont pas d'accord.
Qu'est-ce que la dérive de copie ?
La dérive de copie est un texte visible par l'utilisateur qui diverge de sa source approuvée sur les surfaces et dans le temps, sans source unique de vérité dont diverger.
Trois défaillances se confondent, et elles ont besoin de correctifs différents :
- A string that was never keyed is a hardcoded string. It is invisible to your catalog and to translation, but the wording may be perfectly correct. We covered that pattern in why AI coding tools keep adding hardcoded strings.
- Les catalogues qui existent et se désynchronisent les uns avec les autres sont des fichiers de traduction désynchronisés. La source est correcte ; les copies dérivées sont obsolètes.
- La dérive de copie n'est ni l'un ni l'autre. La chaîne est clée, les fichiers sont synchronisés, et le libellé lui-même a changé sans décision — donc la page marketing promet « Commencer l'essai gratuit », la page d'accueil dit « Essayez gratuitement », et le bouton du produit lit « Commencer ».
Drift is the expensive one because nothing is broken. No build fails, no test goes red, no translation is missing. The product simply speaks with three voices and nobody can point at the moment it started. We define the term in full in copy drift: what it is, what causes it, and how to prevent it.
Pourquoi les agents de codage IA causent-ils une dérive de copie ?
Les agents de codage changent le libellé qu'on ne leur a pas demandé de changer, parce que réécrire une chaîne à proximité est indiscernable du nettoyage d'un composant.
Demandez à un agent d'ajouter un état de chargement et il peut aussi raccourcir un libellé, mettre en casse de phrase un titre, ou remplacer « Se connecter » par « Connexion » pendant qu'il est dans le fichier. Chaque modification est défendable en soi. Aucune n'a été demandée, et aucune n'est signalée comme un changement de copie, parce que pour l'outillage c'est un littéral de chaîne dans un attribut JSX comme n'importe quel autre.
The community answer so far has been a rules file — AGENTS.md, .cursorrules, a “UI copy policy” block in the prompt. Those help, and they are worth having. But a convention is not a check. It reduces how often the agent rewrites your copy; it does not tell you when it did.
Où la copie produit vit-elle réellement dans la plupart des équipes ?
En quatre endroits à la fois, chacun avec un propriétaire différent et un chemin d'édition différent.
Il y a le site marketing, généralement dans un CMS. Il y a la page d'accueil, souvent maintenue séparément et mise à jour plus rapidement parce que c'est la chose en expérimentation active. Il y a les chaînes à l'intérieur du produit, réparties sur les composants. Et il y a les fichiers de locale, qui sont en aval des chaînes produit et obsolètes par rapport aux trois autres.
Chacune de ces surfaces peut être cohérente en interne tandis que le produit dans son ensemble ne l'est pas. C'est la forme réelle du problème, et c'est pourquoi traiter cela comme un problème de copie produit seul le sous-décrit.
Comment gardez-vous la copie UI cohérente dans une base de code ?
Faites du dépôt la source de vérité et faites de la chaîne une unité examinable — tout le reste découle de ces deux mouvements.
En pratique, cela signifie trois choses. Chaque chaîne visible par l'utilisateur vit dans un catalogue plutôt que d'être intégrée dans les composants. Les composants référencent une clé au lieu d'un littéral, donc le même libellé ne peut pas exister en deux endroits et diverger silencieusement. Et une modification du catalogue apparaît dans le diff, où un examinateur la voit comme il voit n'importe quel autre changement.
Ce dernier point est celui qui fait le travail. La cohérence de copie est généralement traitée comme un problème de discipline — l'équipe a besoin d'un guide de style, quelqu'un doit se souvenir. Une fois que le libellé est dans le diff, il cesse de dépendre de la mémoire. Il devient visible au moment de l'examen, qui est le seul moment où quelqu'un regarde de manière fiable.
Teams shipping with AI coding tools tend to hit this earlier and harder, which is why we write about it for developers and for people building with AI tools specifically.
Pourquoi la cohérence de copie et la localisation sont-elles le même problème ?
Les deux échouent pour la même raison : il n'y a pas de source convenue avec laquelle être cohérent ou à partir de laquelle traduire.
Une équipe qui ne peut pas dire laquelle des trois formulations est celle approuvée ne peut pas non plus localiser correctement l'une d'elles. Envoyez les trois à la traduction et vous obtenez trois traductions, dans chaque langue, et l'incohérence est maintenant multipliée par votre nombre de locales au lieu d'être contenue en anglais. C'est le mécanisme derrière la plupart de ce qui ressemble à une mauvaise qualité de traduction — la source était déjà ambiguë.
Run it the other way and the two problems collapse into one. Once every string is single-sourced and keyed, the translation is a derived artifact of that catalog. There is no separate project with its own copy of the truth, because there is only one copy of the truth. That is what “localization built in” means architecturally: not that we also do translation, but that translation is the same operation performed on the same object. We wrote about how this reordering happened in what AI-written code did to localization.
Qu'en est-il de la copie en dehors du produit ?
C'est la partie que la catégorie n'a pas résolue, et nous ne prétendrons pas le contraire : standardiser la copie sur le marketing, les pages d'accueil et le produit en un seul système est ce vers quoi nous construisons, pas quelque chose que vous pouvez activer aujourd'hui.
Voici pourquoi c'est non résolu. Chaque outil existant dans cet espace possède une surface. Les outils de copie produit possèdent les chaînes à l'intérieur de l'application. Les plateformes de contenu possèdent le site marketing. Aucun ne peut voir l'autre, donc la formulation sur la page qui a acquis l'utilisateur et la formulation sur l'écran qui l'intègre sont maintenues par des personnes différentes dans des outils différents sans mécanisme qui remarquerait jamais qu'elles ne sont pas d'accord.
La forme de la réponse découle de l'architecture déjà décrite. Si le libellé approuvé vit en un seul endroit et chaque surface le référence par clé plutôt que de le reformuler, alors la page d'accueil et le bouton du produit sont la même chaîne, et la changer est une décision plutôt que trois. Y arriver est un élément de la feuille de route de globalize.now. Le nommer avec précision maintenant semble mieux que de prétendre qu'il livre déjà.
En quoi cela diffère-t-il d'un outil de copie construit sur un fichier de conception ?
La différence est architecturale plutôt que catégorique — les deux sont des systèmes de gestion de copie, et ils ne sont pas d'accord sur l'endroit où vit la vérité.
| Dimension | Fichier de conception en premier | Natif du code |
|---|---|---|
| Source de vérité | Un espace de travail en dehors du code | Le dépôt |
| Comment cela reste en synchronisation | Une personne la synchronise | Automatique à la connexion |
| Surfaces couvertes | Une | Multi-surface (en construction) |
| Ce qu'il peut observer | Les modifications apportées dans l'espace de travail | Le diff qui a changé la chaîne |
Two observations worth dating, because vendor state moves. As of 2026-08-29, dittowords.com/llms.txt returns 404, which means the leading citation in this category has no machine-readable entity file. And as of the same date, Ditto’s own localize product page describes adding a variant for each language and previewing translations in designs — it does not claim to produce the translations. That is the seam: a tool can own the wording and still hand off the language work to somebody else.
Nous ne concurrençons pas non plus les moteurs de traduction ou les bibliothèques i18n d'exécution. Ce sont des couches différentes et elles restent où elles sont.
globalize.now transforme le texte codé en dur de votre application en fichiers de traduction prêts à l'emploi et les maintient à jour au fur et à mesure de vos déploiements.
Essayer globalize.now gratuitement