One site, several language versions
Show Testimonials on Multilingual Websites
You translated the whole site, and the testimonial section on the Spanish page is still a wall of English. Or the French version has two quotes while the English one has forty. Showing testimonials across language versions is its own placement problem: which quotes each version gets, what to do when a language has almost none, and how to show a translation without passing it off as the customer’s own words. The checklist below sets it up version by version.
- A widget plan for each language version
- What to show when a language has few quotes
- Translation labels that stay honest
The problem, solved
Where multilingual sites trip over their testimonials
The German page shows English quotes
One widget was embedded in the shared template, so every language version displays the same English testimonials.
With StoryProof: Tag each testimonial with the language it was given in, then build a widget per language version with the matching approved testimonials chosen for it.
Each version needs a different embed
Translators copy the English page and the English widget comes along with it.
With StoryProof: The embed is a div with the widget id plus the embed.js script. Each language template keeps the same script and swaps in its own widget id in the div.
Our Portuguese page has two testimonials
Smaller markets have fewer customers, so their version looks thin next to the main language.
With StoryProof: Collection forms are available in several languages on every plan, so you can ask customers in that market in their own language and grow the local set.
Five languages means five widgets
A widget for every language and page type multiplies fast and can outrun the plan.
With StoryProof: Widgets are counted per workspace, so plan the count first: one widget per language is often enough, with thin languages sharing a fallback widget.
We translated a quote and published it
A translated testimonial shown as if the customer wrote it puts words in their mouth they never chose.
With StoryProof: Nothing goes public until you approve it. Use that step to send the translation to the customer for a yes before it appears, and label it as translated.
Flip the switch to see how StoryProof handles each one.
Display checklist
Set up testimonials for each language version
Work through it once for the site, then the last group for each language version.
Your ticks stay in this browser tab and are not sent anywhere.
What a thin language version should show
For a language version with only a handful of testimonials in its own language.
In StoryProof
Roll it out across your language versions
Step 1 of 4
Tag by language
Go through approved testimonials and tag each with its language. Tags are on every plan.
Step 2 of 4
Build one widget per language
Create a widget for each language with enough testimonials and choose the matching ones for it. Decide the fallback for thin languages from the table above.
Step 3 of 4
Place the right id on each version
In each language template, keep the single embed.js and put that language’s widget id in the div.
Step 4 of 4
Grow the thin languages
Send requests to customers in smaller markets using a collection form in their language, so their version gets local proof over time.
Before you start
Limits to plan around
What this does not cover, and what to check on your side. Better to know now than after launch.
- 01
No translation feature is relied on here
This page assumes testimonials are shown in the language they were given, plus any translation you write and the customer approves.
- 02
Widget labels are worth checking
We have not verified how the text around testimonials in a widget behaves on each language version. Look at every version before launch.
- 03
One Wall of Love, not one per language
The hosted Wall of Love is a single page of approved testimonials. Per language display happens through widgets on your own language versions.
- 04
Search engines read the page as a whole
Google uses the visible content of a page to work out its language and advises one language per page. A large block of quotes in another language works against that.
- 05
More languages, more upkeep
Every language widget is a selection someone keeps current. Add versions only as fast as you can maintain them.
FAQ
Questions people ask
Short answers to what usually comes up next.
Should I translate testimonials on my multilingual site?
Show testimonials in their original language where your visitors can read it. Translate only when proof matters on a version whose visitors cannot, get the customer’s agreement to the wording, and label it as a translation.
Can every language version use the same widget?
It can, but then every version shows the same quotes. A widget per language, each holding testimonials in that language, keeps each page in one language.
Do I need a separate embed script for each language?
No. The same embed.js loads on every version; only the widget id inside the div changes from one language to the next.
How do I get more testimonials in a small language?
Ask customers in that market directly, using a collection form in their language. Forms are available in several languages on every plan.
Still have a question? Ask the StoryProof team or book a demo.
Proof in every language you sell in
Collect in several languages, tag by language and give each version of your site its own widget.
Sources
- Managing multi-regional and multilingual sites, Google Search Central. Checked 2026-11-12.
Last updated 2026-11-12.