Référence / SDK
Page traduite automatiquement
Modifier
Écris une valeur corrigée, ou prévisualise puis applique une recherche et un remplacement littéraux sur les valeurs de tes locales cibles.
Modifier une clé
editEntry
Écrit une correction saisie par un humain pour une clé et une locale. La valeur candidate passe la même barrière d'intégrité qu'une traduction de fournisseur avant que quoi que ce soit n'atteigne le disque ; à l'acceptation, le fichier de locale et l'entrée de verrou de cette clé sont mis à jour sous le verrou d'écriture de la locale. N'appelle jamais de fournisseur.
function editEntry(
input: EditEntryInput,
deps?: EditEntryDeps,
): Promise<EditEntryResult>;Propriété
Type
Renvoie : EditEntryResult
Lève : UNKNOWN_, UNKNOWN_, LOCALE_, LOCALE_, SOURCE_, SOURCE_, UNKNOWN_, KEY_, LOCK_, RUN_, TARGET_, LOCALE_, LOCK_, LOCK_, PROVENANCE_
Exemple : Modifier et retraduire une seule clé
Renvoie { accepted: true, value }, ou { accepted: false, reason: "placeholder" | "markup" | "icu" | "degenerate" | "empty", value } sans rien écrire (la barrière d'intégrité). Construis tout schéma sur les raisons à partir du tuple exporté INTEGRITY_. "empty" refuse une valeur vide pour une source qui a du texte ; efface une clé avec la sentinelle [[CLEAR]] du classeur. Un refus placeholder ou markup porte en plus details : chaque placeholder ou balise en cause, préfixé de - quand la valeur candidate l'a supprimé ou de + quand elle l'a inventé.
La valeur est enregistrée dans verbatra.provenance.json avec l'origine human ; passe actor: "agent" quand un agent d'IA l'a écrite, pour que l'enregistrement le dise (l'appelant l'affirme, rien ne le vérifie) ; tout autre actor lève une TypeError avant toute lecture. Un fichier de provenance corrompu lève PROVENANCE_ avant que la valeur ne passe le contrôle, et rien n'est écrit ; celui d'un verbatra plus récent, ou celui que l'enregistrement ferait dépasser la taille que verbatra relit, est laissé intact et la valeur est écrite sans enregistrement.
Avec actor: "agent", une clé qui correspond aux pinnedKeys de la config lève KEY_ avant toute écriture. La modification d'une clé épinglée par une personne est acceptée.
lockAcquireTimeoutMs borne l'attente du verrou d'écriture de la locale avant que l'appel échoue avec LOCK_ (dix minutes par défaut), onLockWait signale cette attente, et une borne invalide échoue avec LOCK_ avant toute lecture.
Remplacer entre locales
Une recherche et un remplacement littéraux sur les valeurs de tes locales cibles, en deux étapes. previewValueReplace liste ce qui changerait et pourquoi certaines valeurs ne changeraient pas. applyValueReplace modifie celles que tu choisis et décide chacune de nouveau sous le verrou d'écriture. Aucune des deux ne cherche de correspondance dans la locale source, et aucune n'appelle de fournisseur.
previewValueReplace
Liste les valeurs cibles qui contiennent find, avec un statut pour chacune. La correspondance est littérale : pas de syntaxe de motif, pas de normalisation Unicode (un find en NFD ne correspond pas à une valeur en NFC) et pas de conversion des fins de ligne. replace est inséré tel que tu l'écris, donc $& et $1 n'ont aucun sens particulier. caseSensitive vaut true par défaut. Une correspondance ne commence ni ne finit jamais au milieu d'une paire de substituts, et un find vide, un find de plus de 20 000 caractères, ou un find ou replace avec un substitut isolé lève FIND_. Lecture seule.
function previewValueReplace(
input: PreviewValueReplaceInput,
deps?: ValueReplaceDeps,
): Promise<ValueReplacePreview>;Propriété
Type
Renvoie : ValueReplacePreview
Lève : FIND_, UNKNOWN_, UNKNOWN_, LOCALE_, LOCALE_, SOURCE_, SOURCE_
Chaque entrée a un statut. ready et stale-source peuvent être appliquées ; stale-source marque une clé dont le texte source a changé depuis l'enregistrement de sa traduction. gate-refused porte le reason que la valeur remplacée enfreindrait : elle est vérifiée contre le texte source actuel par la même barrière d'intégrité qu'une modification. Pour les formats ICU (next-intl et ARB), un remplacement est aussi refusé avec la raison icu s'il change ce que fait un argument : son type, un style ou un squelette de nombre ou de date, ou le nombre de # d'une branche plurielle, comparé à la valeur actuelle ou au texte source quand la valeur actuelle n'est pas de l'ICU valide. Un argument renommé en s'éloignant du texte source est refusé comme placeholder. details nomme chaque différence, - pour la valeur comparée et + pour la valeur remplacée. too-long est une valeur qui dépasserait 20 000 caractères ; ce n'est pas un refus d'intégrité et elle n'a pas de reason. pinned est une clé qui correspond à pinnedKeys. protected est une valeur qu'une personne a écrite ou importée, une valeur modifiée hors de verbatra, ou toute valeur quand le fichier de provenance est illisible, y compris celui d'une version plus récente de verbatra ; cela vaut quel que soit humanEdits. Une clé qui est les deux apparaît comme pinned avec protected: true et exige includePinned et includeProtected. no-source-entry est une clé sans texte source à comparer, et unchanged est une valeur que le remplacement laisse telle quelle.
Au plus 1 000 valeurs sont listées, dans l'ordre des targetLocales de la configuration, quel que soit l'ordre dans lequel locales les nomme. truncated indique quand davantage correspondaient, et before et after sont coupés à 200 caractères autour de la première correspondance. valueHash est le hachage que l'enregistrement de provenance stocke pour la valeur actuelle ; renvoie-le à applyValueReplace. baselineUnavailable: true indique que le fichier de verrou n'a pas pu être lu : aucune valeur n'a été comparée à son texte source enregistré et aucune n'est stale-source.
applyValueReplace
Remplace find dans les valeurs que tu as choisies, en recalculant chaque nouvelle valeur à partir du texte sur le disque sous le verrou d'écriture de la locale. Elle ne prend jamais de valeur calculée de l'appelant, et l'aperçu n'est qu'indicatif : chaque entrée est décidée de nouveau.
function applyValueReplace(
input: ApplyValueReplaceInput,
deps?: ValueReplaceDeps,
): Promise<ApplyValueReplaceResult>;Propriété
Type
Renvoie : ApplyValueReplaceResult
Lève : FIND_, UNKNOWN_, UNKNOWN_, LOCALE_, LOCALE_, LOCK_, LOCK_, PROVENANCE_
Chaque entrée finit comme applied, skipped (avec sa raison), refused (avec la raison d'intégrité), changed ou too-long. changed signifie que la valeur ne correspond plus à son valueHash, ne contient plus find ou a disparu, et que rien n'a été écrit pour elle. Le hachage ignore la normalisation Unicode et les fins de ligne ; une valeur qui ne diffère de l'aperçu que par là est remplacée si find correspond encore, et est changed sinon. Une clé épinglée est ignorée sauf si includePinned est activé et que actor vaut human, et une valeur protégée est ignorée sauf si includeProtected est activé ; une clé qui est les deux exige les deux. Avec un fichier de provenance d'une version plus récente de verbatra, toute valeur compte comme protégée ; includeProtected la modifie quand même, mais le fichier reste intact et la valeur n'a pas d'enregistrement. Quand les mêmes locale et key apparaissent plusieurs fois, la première décide, quel que soit son valueHash, et chaque suivante est ignorée comme duplicate-entry.
Les locales sont traitées l'une après l'autre, dans l'ordre où elles apparaissent d'abord dans entries, chacune sous son propre verrou, avec une écriture du fichier de locale, une mise à jour du fichier de verrou et du fichier de provenance, et une mise à jour de la mémoire de traduction. Une clé périmée garde son ancien hachage de verrou, donc check la signale toujours comme périmée, et sa valeur n'entre pas dans la mémoire de traduction. Chaque valeur écrite reçoit un nouvel enregistrement de provenance avec actor pour origine et sans décision de relecture. actor est obligatoire, et une valeur autre que human ou agent lève une TypeError avant toute lecture.
Une locale qui échoue n'arrête pas les autres. localeFailures liste chacune avec son code et son message, comme LOCK_ quand son verrou d'écriture n'est pas libre dans lockAcquireTimeoutMs, TARGET_, SOURCE_ ou une erreur d'adaptateur. Une entrée que la barrière d'intégrité a refusée reste refused, et une qu'une vérification avait réglée avant l'échec garde son résultat ; les autres sont ignorées comme locale-failed, et rien n'a été écrit pour elles. Quand l'échec porte fileWritten: true, il est survenu après l'écriture du fichier de la locale, pendant la mise à jour du fichier de verrou ou du fichier de provenance, ou la libération du verrou d'écriture : les entrées acceptées sont applied, leurs valeurs sont sur le disque et le verrou ou la provenance peuvent être en retard, donc relis la locale avant de réessayer. Ne relance pas un remplacement dont le find apparaît dans son replace sans vérifier. L'attente du garde du fichier de verrou utilise la valeur par défaut de dix minutes, pas lockAcquireTimeoutMs.