OxifyOxify
Advanced

Translations

Translate your offer's texts into each language your store sells in, so shoppers read them in their own language.

The Translations page lets you write each text of a bundle once per language your store sells in. A shopper browsing in French sees your French text. A shopper in a language you haven't translated sees your original text.

Translations is not App language

Translations changes what your shoppers read on your storefront. App language changes the language of the app's own screens, which you read in your Shopify admin. Changing one never changes the other.

Before you start

  • Publish your languages in Shopify (Settings → Languages in your Shopify admin). The language list here is your store's published languages. Markets don't change it.
  • Set the bundle to Active. The page lists active bundles only. With none, it shows No bundles to translate.
  • Save the original text first. A row appears only once its field has text.

Translate a bundle

In the app menu, click Translations.

Next to Translate into, choose a language. Each is listed by code and name, such as FR - French. The page opens on your first language other than your main one.

Click the arrow at the right of your bundle's card header. The card is headed BUNDLE DEAL - and the bundle's name, and cards start closed.

Each row has a label such as Offer #1 - Title, your text under Original text (read-only), and a box under Translated text (FR). Type the translation. A box left empty shows the original text.

To add another language, choose it in Translate into and repeat. What you typed for the first language stays on the page.

Click Save at the top right. Translations saved successfully confirms it.

Nothing is saved until you click Save, and leaving the page first discards your edits. Save writes every bundle and language on the page together. Translations belong to one bundle, so translate a sentence in each bundle that uses it.

Reload before you save if you edited the bundle elsewhere

The page loads your bundles when it opens, and Save writes those copies back, translations included. The bundle editor saves the whole bundle too. If you change a bundle in one tab and save in another, the last save wins. Reload first.

What you can translate

A row's label is its group, a dash and the field, such as Offer #2 - Subtitle. Rows exist only for fields that have text and for add-ons that are switched on.

GroupFieldsListed when
Block titleThe bundle's block title.The bundle has one.
Offer #1, Offer #2…Title, Subtitle, Label, Badge text, Sold out text, Free gift #1 text, Upsell #1 textThe offer has that text. Each gift and upsell gets a row.
Progressive giftsTitle, SubtitleThe Progressive Gifts card is on.
Progressive gift #1…Title, Label, Label crossed out, Locked titleThe Progressive Gifts card is on.
SubscriptionsSubscribe title, Subscribe subtitle, One-time title, One-time subtitle, Highlight #1…The Subscriptions card is on. Highlight rows also need Add highlights to the subscription option ticked.
TimerTitleThe Timer Bar card is on.
Live social proofMessageThe Live Social Proof card is on.
Scratch dealTextThe Scratch Deal card is on.
Sticky add to cartTitle, Button textThe Sticky add to cart card is on.
Mix & MatchEight rows, below.An offer has a product with Customers can change this product on and alternatives chosen. See Mix & Match.

Badge text isn't translated on your store

The page lists Badge text for every offer that has one, but your storefront ignores it: a badge shows the editor's text in every language. The Most Popular style is a fixed image with fixed wording.

The eight Mix & Match - rows have no text of your own. Original text shows the built-in English wording that shoppers see until you translate it.

RowOriginal textWhere shoppers see it
Change buttonChangeThe button on a product they can swap.
Change popup titleSelect productThe swap popup's heading.
Change popup subtitleYour bundle discount applies to every optionThe line under it.
Choose buttonChooseThe button on each alternative.
Selected buttonSelectedThe button on the one already chosen.
Savings badge (before the amount, e.g. "Save $5")SaveThe word before an alternative's saving.
Empty product slot textSelect productA slot with no product yet.
Close button (accessibility label)CloseRead aloud by screen readers.

Not on this page:

  • Highlight lines on an offer. They show as you typed them. See Highlights.
  • Product names, option names and prices. They come from your products.
  • The discount name at checkout. It comes from the offer's original Title.
  • A few built-in messages. For example, Sorry, this is not currently available. shows in English when the selected variant isn't available.
  • Bundle Builder. This page covers Quantity Break bundles only. A bundle builder shows the text you typed whatever language the shopper uses, and a few built-in words on it, such as Total and the item counts, are English only.

Auto-translate

Click Auto-translate in a bundle's header to fill every row of that bundle for the language in Translate into.

  • Google Translate does it. The bundle's original texts are sent to Google, which treats them as English.
  • It overwrites. Every row of that bundle, A/B versions included, gets the new text — even rows you typed or saved earlier. Other languages and other bundles are untouched.
  • It doesn't save. Auto-translation completed means the boxes are filled. Check them, then click Save. To undo, reload without saving.
  • It's free to use. It's part of your plan, with no credits and a daily limit of about 500,000 characters per store.

Each text is translated on its own, without the offer around it, and variables aren't protected. Check that every {{variable}} is intact and that short labels, such as the Mix & Match rows, read correctly.

When Auto-translate fails, a red banner at the top of the page says why:

MessageWhat to do
Daily translation limit reached. Try again tomorrow.Translate by hand, or wait.
Too many or too long textsThe bundle has over 128 rows, or one text is over 5,000 characters. Translate by hand.
Too much text in one requestThe texts add up to over 30,000 characters. Translate by hand.
Translation API not configuredAuto-translate is unavailable. Contact support.

For any other message, try again later or translate by hand.

What shoppers see

  • The language of the page they're on. Shopify tells the offer which language the page is in, and the offer uses the translation saved under that code, such as fr or pt-BR (case doesn't matter). Shopify and your theme choose the page's language, not this page.
  • Your original text where there's no translation. This works row by row, and an empty box counts as none.
  • Variables still work. A translation is processed like the original, so {{saved_percentage}}, {{timer}} and other text variables fill in. Copy each exactly and translate only the words around it. The boxes have no variables icon, so type or paste them.
  • New text is live when you save. Reload the product page. Storefront pages can stay cached for a few minutes.
  • The editor preview never shows translations. To check, open a product page, switch to the language with your theme's language selector and read each text on the offer block.

A/B tests

While a bundle runs an A/B test, its rows are grouped by version, with a line between groups. Labels start with Variant A (Control) -, Variant B - or Variant C -.

  • The block title and the offers, with their gift and upsell texts, are listed once per version.
  • Everything else (progressive gifts, subscriptions, timer, social proof, scratch text, sticky bar) is shared. It is listed once, under Variant A (Control), and applies to every version.
  • The Mix & Match rows have no version.

Shoppers shown version A

What you type under Variant A (Control) for the block title, the offer texts and the gift and upsell texts doesn't currently show to shoppers assigned to version A: they see the original wording. Shoppers assigned to version B or C, and every shared row, get their translations.

If version B or C wins when you end the test, it becomes your bundle but its translations don't move with it. Open Translations and check every row of that bundle: some may be empty, and the block title may still hold the translation of the old one.

When you change a bundle later

A translation belongs to an offer's field, not to its wording or position.

If you…The translations…
Change an original textStay and keep showing. Update them here too.
Reorder offersMove with their offers.
Delete an offerDisappear from the page and are no longer used.
Duplicate an offer, or a bundle on HomeAren't copied to the new offers.
Set a bundle to InactiveAre kept, but the bundle leaves this page until it is Active again.
Unpublish a language in ShopifyAre kept, but the language leaves the list until you publish it again.

If it isn't working

What you seeWhat to check
A language isn't in Translate intoPublish it in Shopify, then reload. If the list is empty, reload — the page couldn't load your languages.
No bundles to translateSet the bundle's Status to Active and save, then reload. If it is already Active, reload anyway — the page shows this message when it couldn't load your bundles. See Offer not showing.
A row you expect is missingIts field is empty or its card is off. Fix that, click Save in the bundle editor, then reopen this page.
Saved, but your store shows the originalCheck you're viewing the store in that language, that you translated the right bundle and version, and that the row isn't Badge text. Then reload in a private window.
Some texts are translated, some aren'tBoxes left empty show the original. Open the card and look for them.
A translation shows {{…}} or lacks a numberA variable was changed. Copy it again from the original.
The offer doesn't show at allSee Offer not showing.
A price or discount is wrong at checkoutTranslations change text only. See Discount not applying at checkout.

On this page