Localization Placeholder Parity avatar

Localization Placeholder Parity

Pricing

$100.00 / 1,000 completed reports

Go to Apify Store
Localization Placeholder Parity

Localization Placeholder Parity

Check two flat JSON translation catalogs for missing or extra resource keys and mismatched named placeholders. Get one complete deterministic report. Supports a strict named-placeholder profile; checks structure, not translation quality. No external translation or AI service.

Pricing

$100.00 / 1,000 completed reports

Rating

0.0

(0)

Developer

Picknotes

Picknotes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Check two flat JSON translation catalogs for missing or extra resource keys and mismatched named placeholders. This tool checks structure, not translation quality or meaning.

Quick start

Run the synthetic example with:

{"useDemo":true}

The demo reports issues: invite is missing the team placeholder, removed is a missing key, and extra is an extra key. Literal doubled braces are not placeholders. To check your own catalogs:

{"useDemo":false,"authorizedNonpersonalNonconfidentialData":true,"placeholderProfile":"python-format-named/1","sourceCatalogJson":"{\"greeting\":\"Hello {name}\"}","targetCatalogJson":"{\"greeting\":\"Bonjour {name}\"}"}

The two catalog fields contain JSON text, not nested objects. Omit all three own-input fields in demo mode. Empty catalogs are supported. Duplicate keys, malformed JSON and unsupported syntax reject the whole request.

Supported syntax and limits

Only python-format-named/1 is supported: {NAME}, where NAME uses ASCII letters, digits and underscores, begins with a letter or underscore, and has at most 64 characters. {{ and }} are literal braces. No ICU, positional fields, conversions, format specifications, attribute/index access or nested replacements are supported. No alternate placeholder language is detected. Placeholder sets are compared case-sensitively; repeated-occurrence count differences alone are informational.

Each catalog is limited to 1,048,576 UTF-8 bytes and 1,000 keys, with at most 128 code points per key, 8,192 code points per message and 128 placeholder occurrences per message. Catalogs must be flat objects containing string values. Decoded key/message UTF-8 totals also cannot exceed 1,048,576 bytes per catalog. Maximum output is 2,000 rows and 2,097,152 report bytes. Limits apply together; an oversized report is rejected without truncation. The outer request is limited to 4,500,000 bytes. Unicode is preserved without normalization; raw JSON surrogate escapes are rejected.

Results and pricing

A completed report is delivered as one dataset item. Its reportJson string contains the complete canonical report, including one final newline; reportSha256 and reportBytes identify those exact bytes. status is ok or issues, and rows cover every key in the source/target union. Missing keys and placeholder mismatches are complete findings and qualify as completed reports.

The intended price is USD 0.10 per completed report in one dataset item, including complete reports with issues. Check the Actor's live pricing before running. A receipt records completion intent and consistency, not proof of payment settlement. Rejected requests do not attempt a completion event, but platform usage costs may still apply. There is one append attempt and no automatic retry. If delivery is uncertain, check the existing run and dataset before rerunning to avoid possible duplicate charges.

Data handling

Submit only authorized nonpersonal, nonconfidential data. Apify stores INPUT before execution. Reports retain resource keys, placeholder names, counts and hashes; raw message prose is not included. This is not a secret scanner or anonymizer. Platform storage and access settings apply; there is no private-storage, automatic-deletion or retention guarantee from this tool. No external translation or AI service is used.