{"api":"v1","generated_at":"2026-11-01T17:12:27.752Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/api-zfinia-com-x402-v1-locale-placeholder-contract-audit-e55d22","pinned_page":"https://tollindex.com/e/api-zfinia-com-x402-v1-locale-placeholder-contract-audit-e55d22/at/2026-11-01T13-19Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-11-01T13:19:08.063Z","snapshot_stamp":"2026-11-01T13-19Z","endpoint":{"slug":"api-zfinia-com-x402-v1-locale-placeholder-contract-audit-e55d22","canonical_url":"https://api.zfinia.com/x402/v1/locale-placeholder-contract-audit","resource":"https://api.zfinia.com/x402/v1/locale-placeholder-contract-audit","http_method":"POST","type":"http","x402_version":2,"registries":[],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Compare placeholder structure across locales. A placeholder missing from a translation renders blank in some frameworks and throws in others, so the same file is a cosmetic bug in one stack and a crash in the next. ICU braces, printf conversions and mustache pairs are all recognised. Also reports a placeholder no base string supplies, a positional count that differs, a syntax that differs between locales, and unindexed printf placeholders reordered by a translation, which the renderer ignores.","service_name":"Placeholder Contract Audit","declared_category":null,"declared_tags":["internationalisation","translation qa","release gate","developer tooling","data quality"],"route_template":null,"registry_updated":"2026-10-04T08:44:21.271Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"locale placeholder contract audit","category":"inference","first_observed_by_toll":"2026-10-04T12:19:28.655Z","last_observed_by_toll":"2026-10-04T21:22:41.206Z","observation_began":"2026-09-10"},"presence":{"listed_now":false,"first_absent_at":"2026-10-05T05:36:47.069Z","delisting_confirmed_at":"2026-10-05T14:34:15.385Z","events":[{"registry":"cdp","at":"2026-10-04T12:19:28.656Z","event":"listed"},{"registry":"cdp","at":"2026-10-05T05:36:47.069Z","event":"delisted"},{"registry":"cdp","at":"2026-10-05T14:34:15.385Z","event":"delisting_confirmed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.22 USDC","amount_units":0.22,"decimals_known":true,"pay_to":"0x25e8245f07d5e4873987293dad666afbe56a9608","scheme":"exact"}],"counters":{"observed_at":"2026-10-04T21:22:41.206Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-10-04T08:44:11.804Z"},"validation":{"latest":{"observed_at":"2026-10-04T14:49:33.525Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-10-04"},"uptime":[{"days":7,"observed":0,"passed":0,"ratio":null},{"days":30,"observed":2,"passed":1,"ratio":0.5},{"days":90,"observed":2,"passed":1,"ratio":0.5}],"history_90d":[{"observed_at":"2026-10-04T14:49:33.525Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-04","state_changed":true},{"observed_at":"2026-10-04T12:52:15.390Z","state":"fail","failed_checks":["endpoint_reachable"],"run_id":"new-after-daily-2026-10-04","state_changed":true}]},"seller":{"wallet":"0x25e8245f07d5e4873987293dad666afbe56a9608","page":"https://tollindex.com/seller/0x25e8245f07d5e4873987293dad666afbe56a9608","endpoints":179,"hosts":5},"reports":0,"registry_record":{"cdp":[{"tags":["internationalisation","translation qa","release gate","developer tooling","data quality"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0x25e8245f07d5e4873987293dad666afbe56a9608","amount":"220000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":60}],"quality":{"lastCalledAt":"2026-10-04T08:44:11.804Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.zfinia.com/x402/v1/locale-placeholder-contract-audit","extensions":{"bazaar":{"info":{"input":{"body":{"locales":[{"base":true,"locale":"en","messages":{"app":{"title":"Dashboard","greeting":"Hello, {name}"},"cart":{"item_one":"You have {count} item in your cart","item_other":"You have {count} items in your cart"},"legal":{"terms":"By continuing you accept the <a href=\"/terms\">terms</a>"},"errors":{"retry":"Try again","generic":"Something went wrong"},"shared":{"cancel":"Cancel","dismiss":"Cancel"},"invoice":{"total":"Total: {amount, number, ::currency/USD}"}}},{"locale":"de","messages":{"app":{"title":"Übersicht","greeting":"Hallo, {vorname}"},"cart":{"item_one":"Sie haben {count} Artikel im Warenkorb","item_other":"Sie haben {count} Artikel im Warenkorb"},"legal":{"terms":"Mit dem Fortfahren akzeptieren Sie die <a href=\"/terms\">Bedingungen</a>"},"errors":{"retry":"Erneut versuchen","generic":"Etwas ist schiefgelaufen"},"shared":{"cancel":"Abbrechen","dismiss":"Verwerfen"},"invoice":{"total":"Gesamt"}}},{"locale":"fr","messages":{"app":{"title":"Tableau de bord","greeting":"Bonjour, {{name}}"},"cart":{"item_one":"Vous avez {count} article","item_other":"Vous avez {count} articles"},"legal":{"terms":"En continuant vous acceptez les conditions"},"errors":{"retry":"Réessayer","generic":"Une erreur est survenue"},"shared":{"cancel":"Annuler","dismiss":"Ignorer"},"invoice":{"total":"Total : {amount}"}}}]},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"limits":{"maxKeys":50000,"maxLocales":60,"maxFindings":500,"maxFileBytes":2097152,"maxValueLength":32768},"passed":false,"complete":true,"findings":[{"key":"app.greeting","code":"PLACEHOLDER_MISSING","detail":"de is missing name from app.greeting. Some renderers substitute nothing and others throw, so this is a blank in one stack and a crash in the next.","locale":"de"},{"key":"app.greeting","code":"PLACEHOLDER_NOT_IN_BASE","detail":"de uses vorname in app.greeting and the base string does not. Nothing supplies it, so it renders as the literal text or as undefined.","locale":"de"},{"key":"app.greeting","code":"PLACEHOLDER_SYNTAX_DIFFERS","detail":"app.greeting uses icu in en and mustache in fr. One renderer reads one syntax, so the other is left as literal text.","locale":"fr"}],"consistent":false,"request_id":"example-request","service_id":"locale_placeholder_contract_audit","assumptions":["ICU braces, printf conversions and mustache pairs are all recognised, because a project uses one of them and reading only one would report every string in the others as having no placeholders at all.","An unindexed printf placeholder cannot be reordered, so a translation that reorders them is reported: the renderer substitutes in the base order regardless, which makes a correct translation render wr...","A key absent from a locale is not reported here, since that is a coverage question rather than a placeholder one. locale_key_coverage_audit answers it."],"base_locale":"en","limitations":["Placeholder structure across the files supplied. Whether a translation is accurate or idiomatic is outside this entirely, and no renderer is run.","consistent is true only when every translated message carried exactly the base placeholders in a usable form."],"observed_at":"2026-10-02T00:00:00.000Z","locale_count":3,"not_examined":[],"finding_count":7,"base_key_count":10,"service_version":"1.0.0","findings_by_code":{"PLACEHOLDER_MISSING":3,"PLACEHOLDER_NOT_IN_BASE":2,"PLACEHOLDER_SYNTAX_DIFFERS":2},"compared_message_count":20,"keys_with_placeholders":4}}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["locales"],"properties":{"locales":{"type":"array","items":{"type":"object","required":["locale","messages"],"properties":{"base":{"type":"boolean"},"locale":{"type":"string","maxLength":35},"messages":{"type":["object","string"]}},"additionalProperties":false},"maxItems":60,"minItems":2}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}}}},"description":"Compare placeholder structure across locales. A placeholder missing from a translation renders blank in some frameworks and throws in others, so the same file is a cosmetic bug in one stack and a crash in the next. ICU braces, printf conversions and mustache pairs are all recognised. Also reports a placeholder no base string supplies, a positional count that differs, a syntax that differs between locales, and unindexed printf placeholders reordered by a translation, which the renderer ignores.","lastUpdated":"2026-10-04T08:44:21.271Z","serviceName":"Placeholder Contract Audit","x402Version":2}]}}