Shopify’s latest developer changelog removes a long‑standing barrier for international merchants: the 256 KB ceiling on the total size of locale files in UI extensions. As of October 30 2026, you can bundle as many language files as you need—provided each stays under the 30 KB per‑file limit—so your checkout, customer‑account, and other UI extensions can speak every customer’s language without sacrificing content. In this post we break down the change, identify who needs to act, and give step‑by‑step guidance to reclaim any translations you previously stripped out.
What Changed
Earlier, Shopify enforced a hard 256 KB cap on the combined size of all JSON files in an extension’s locales folder. Teams building multilingual apps often hit the limit when supporting dozens of markets, forcing them to prune translations, drop low‑traffic locales, or split extensions into multiple builds. The new rule eliminates that aggregate limit entirely. The only remaining constraint is the existing 30 KB maximum for each individual locale file—a limit that remains unchanged and ensures fast lookup at runtime. All other localization conventions—file naming (e.g., de.json, pt-BR.json), fallback logic, and JSON schema—stay the same.
Who Is Affected
The update impacts every app that ships UI extensions with locale files, regardless of the API version you’re on. If you’re a developer who has ever added a locales folder to a checkout UI extension, a customer‑account UI extension, or any other surface UI extension, this change applies to you. Existing extension versions continue to run without modification; the benefit appears only on new deployments (or when you push an updated version). Merchants don’t need to take any action—the change is transparent on the storefront side—but they will immediately see richer language coverage once you redeploy.
How to Add New Locales
If you previously removed languages to stay under 256 KB, you can now restore them. Follow these steps:
# 1. Create or restore locale files in the extension folder
# Example folder structure:
my-extension/
└─ locales/
├─ en.json # default (always required)
├─ de.json # German
├─ fr.json # French
└─ pt-BR.json # Brazilian Portuguese
# 2. Ensure each file < 30 KB (Shopify will reject oversized files)
# 3. Deploy the updated extension
shopify app deploy
# 4. Verify in a dev store:
# - Switch store locale (Settings > Store language)
# - Or set a customer’s language via the storefront URL
# - Confirm the UI displays the new translations
A minimal example of a locale file (de.json) looks like this:
{
"checkout": {
"orderSummary": {
"title": "Bestellübersicht",
"total": "Gesamtsumme"
}
}
}
Once the files are in place and each stays under the 30 KB threshold, run shopify app deploy to push a new version. The platform will no longer reject the build for exceeding a combined size, and you’ll see the new languages instantly in any store that uses those locales.
Best Practices & Tips
• Keep individual locale files lean. Even though the aggregate limit is gone, large files can still affect bundle size and load time. Use concise keys and reuse strings where possible.
• Leverage translation management tools (e.g., Lokalise, Phrase) to keep files under 30 KB. Most tools let you set a size alert.
• Test fallback behavior. If a key is missing in a newly added locale, Shopify will fall back to the default (en.json) automatically.
• Document any newly added locales in your app’s README so future developers know which languages are officially supported.
• Monitor the “Locale file size” warning in the Shopify CLI during shopify app deploy — it will flag any file that exceeds 30 KB before the push fails.
Next Steps & CTA
Now that the ceiling is lifted, there’s no excuse for a monolingual checkout experience. Add the languages your global customers use, re‑enable translations you previously stripped, and watch conversion rates improve in each market. Need help auditing your existing locale files or setting up an automated translation workflow? Reach out to our Shopify Partner team or drop a comment below—let’s make every shopper feel at home, no matter the language.
