
How localization works
FunnelFox automatically detects the best locale for each visitor using the following priority order:- URL Parameters: locale is determined by
?lang=xx
and?country=xx
parameters - IP and browser language: locale is determined if geographic location (IP-based country detection) and browser language match the same locale
- Default locale: fallback to your default locale if no matches with locales above.
Important: Localized content is part of your funnel’s static build.
You must republish after making localization changes for them to go live.
Manage locales
To manage locales, open a funnel, hover over the 🌐︎ globe icon at the top and click Manage locales.
Add new locale
- Click Add locale
- Select Country
- Select Language
- Optionally enable catch-all for broader matching
- Choose whether to Translate with AI for instant translation
Use “Europe” as a country to target all 27 EU countries with one locale: AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE.

Catch-all locale matching
When you enable catch-all, FunnelFox matches visitors to locales in this order:- Exact match: Country + Language (e.g., Germany + German)
- Country with any language: Country match + catch-all language
- Language in any country: Catch-all country + language match
- Broad catch-all: Both country and language set to catch-all
- Default locale: Used when no other rules match
Edit localization
Changes to the default locale’s structure automatically apply to all
other locales. Be careful when adding or removing elements in the
default locale.

- All text content (headlines, paragraphs, buttons)
- Images and media files
- Input placeholders and labels
- Option lists in dropdowns/radio buttons
- Error messages
- Meta tags and SEO content
- Screen structure or flow
- Number of elements
- Element types or positions
- Actions and triggers
- Form field requirements
AI translation
FunnelFox includes built-in AI translation for quick localization:- During locale creation: Enable Translate with AI when creating a new locale for instant translation of all content.

- From the Locales page: Click Translate with AI on any existing locale to retranslate all content.
AI translation takes 1-2 minutes depending on funnel size. The page shows
“Processing translation with AI…” during this time. You can navigate away
and return later.
Review AI translations before publishing. Pay special attention to:
- Brand names and product titles
- Technical terms and acronyms
- Calls-to-action (cultural adaptation needed)
- Legal disclaimers and compliance text
- Pricing and currency symbols
Pricing localization
To localize prices in FunnelFox, first create prices for each currency you need in Stripe. Learn more about prices in Stripe.
- Open the locale in the Editor.
- In the Element tab of the Plan picker, update the currency and prices.

- Go to the Actions section in the Element tab of Checkout.
- From the Subscription dropdown, select the Stripe price in the relevant currency.

- Save and republish to go live.
Override locale via URL
You can override the automatic locale detection by passing anff-locale
parameter
in the URL query string. This is useful for:
- Testing different language versions without VPN
- Sharing direct links to specific language versions
- Quality assurance and review workflows
- Customer support scenarios
?ff-locale=
followed by the locale code to any funnel URL:
ff-locale
parameter accepts standard ISO language codes in the format:
language-COUNTRY
(e.g.,en-US
,de-DE
,fr-FR
)language
only (e.g.,en
,de
,fr
)
The
ff-locale
parameter must match one of your configured locales. If an
invalid or non-existent locale is provided, FunnelFox falls back to
automatic detection.How override works
When a locale is set via URL parameter:- It overrides geographic and browser language detection
- The preference persists throughout the funnel session
- Subsequent page navigations maintain the selected locale
- The parameter doesn’t need to be included on every page
Examples
Direct link to German version:Import/export translations
For professional translations or bulk editing, use the import/export feature:Export
- Click Export from the Locales page
- Receive a TSV (Tab-Separated Values) file
- Key: Unique identifier (don’t modify it)
- Default column: Original text
- Locale columns: Translated text for each locale
Import
- Ensure TSV maintains the exact structure
- Click Import and select your file
- Review changes in the editor
- Republish to make changes live
Import overwrites all existing translations for included locales.
Always backup by exporting first.
Test locales
With the locale URL parameter and other methods, you have multiple ways to test:Test different locales
- URL Parameter: Add
?ff-locale=xx-XX
to force a specific locale - Use VPN: Connect from different countries to trigger geo-detection
- Change browser language: Modify browser’s language preferences
- Use different devices: Test with colleagues in other locations
- Browser extensions: Use header modification tools to change Accept-Language
Preview mode test
Preview mode uses the same locale detection as production, including support for the locale URL parameter. Your detected locale in preview helps verify the experience visitors will see.Locale identifiers
Your webhooks and API responses include:locale
: Full locale name (e.g., “Germany • DE”)locale_code
: ISO format (e.g., “de-DE”)
Troubleshooting
Translations not showing after publish
Translations not showing after publish
Ensure you republished the funnel after making localization changes.
Check that your test location/language matches your locale rules.
Wrong locale displayed to visitors
Wrong locale displayed to visitors
Review your locale priority rules. More specific rules (exact country +
language) take precedence over catch-all rules.