What text do shoppers see?
Wording lives in two layers, and most confusion here comes from mistaking one for the other.
Ask: "What text do my customers see on the gift widget, and what's been translated?"
Step 1 — Ask for everything first
Call get_translations with no parameters. The result splits into two lists, because widget wording
and campaign wording are edited on different screens:
widgets— text inside each widget typecampaigns— text belonging to a specific offer
Step 2 — Read the two layers apart
Each entry carries both:
| Field | What it is | Edited on |
|---|---|---|
text | What was typed on the Design screen | Design |
translations | Per-language overrides | Translations |
text is what shoppers see, and it is the fallback for every language that has no override of
its own. A store with one language has text filled in and translations empty — that is a fully
customised store, not an untranslated one.
Step 3 — Understand what is missing
Only customised strings are listed. Anything absent is using the app's built-in wording.
"This store has not customised any text" means the defaults are in use. It does not mean the widget is blank, and it does not mean something is broken. Defaults are also per-store: a shop installed in French starts with French wording, and that French counts as untouched.
Step 4 — Narrow to one language
For a question about a specific language, pass locale — vi, fr, and so on. This restricts the
translated layer and keeps the result well under the size limit, which a multi-language store with
many campaigns will otherwise hit.
activeLanguages in the result lists which languages the store has actually turned on, so a locale
that returns nothing can be told apart from one that was never added.
What you finish holding
For each widget and each campaign: the wording shoppers see today, which languages override it, and which strings are still on defaults.