Multi-Language Image Generation at Scale (API)
76% of online shoppers prefer to buy in their native language. 40% won't buy from sites in another language at all. And localized marketing content drives 20-30% more revenue than English-only campaigns.
But nobody wants to manually create the same promotional banner in 12 languages. That's where template image APIs come in. Design once, generate in every language your market needs. The same approach powers social media image automation and personalized email campaigns across global markets. As of March 2026, zero competitors have published a guide on this, so here's everything I've learned doing it for global e-commerce clients.
Why this is harder than youd thinkWhy This Is Harder Than You'd Think
Translating text is easy. Making translated text look good in an image is not. Here are the problems you'll hit:
Text expansionText Expansion
English is one of the most compact languages. When you translate, text gets longer:
| Language | Expansion vs English |
|---|---|
| German | Up to +35% |
| French | +15-20% |
| Spanish | +15-25% |
| Finnish | +25-35% |
| Italian | +15-20% |
| Portuguese | +15-25% |
Your "Summer Sale" banner that fits perfectly in English becomes "Sommerschlussverkauf" in German. That single word is wider than the entire English phrase. If your template has a fixed-width text container, it'll overflow or get cut off.
Rtl languages arabic hebrewRTL Languages (Arabic, Hebrew)
Arabic and Hebrew read right-to-left. That means:
- Text direction flips
- Layout elements may need to mirror (logo on the right instead of left)
- Mixed content (an English brand name inside Arabic text) creates bidirectional rendering
- Arabic letters connect and change shape based on position in a word
You can't just drop Arabic text into an English template and expect it to work. You'll likely need a mirrored template variant for RTL markets.
Cjk characters chinese japanese koreanCJK Characters (Chinese, Japanese, Korean)
CJK characters are typically twice the width of Latin characters. A headline that fits in 10 English characters might need only 5 Chinese characters, but those 5 take up more horizontal space per character.
Other challenges:
- No spaces between words in Chinese and Japanese (line breaks can happen between any characters)
- Fonts must support thousands of glyphs (vs hundreds for Latin)
- Missing character sets cause fallback to ugly system fonts
The template api approachThe Template API Approach
Here's the workflow I use for multi-language campaigns. The key insight: you design the template for the longest language first, not English.
Step 1 design for the longest textStep 1: Design for the Longest Text
Start your template in Imejis.io with German or Finnish test content, not English. If the layout works with "Sommerschlussverkauf," it'll work with everything shorter.
Set text fields to auto-size: the font shrinks when content is longer, stays large when content is short. This one setting handles 80% of text expansion problems.
Step 2 prepare your translation dataStep 2: Prepare Your Translation Data
Structure your content as a data table with one column per language:
| Field | English | German | French | Spanish | Arabic |
|---|---|---|---|---|---|
| headline | Summer Sale | Sommerschlussverkauf | Soldes d'été | Rebajas de Verano | تخفيضات الصيف |
| cta | Shop Now | Jetzt Kaufen | Acheter | Comprar Ahora | تسوق الآن |
| price | $29.99 | 27,99 € | 27,99 € | 27,99 € | ر.س 112 |
| currency_position | before | after | after | after | after |
Notice the price formatting: dollar sign before the number in English, euro sign after in European markets, different symbols entirely for Arabic markets. Your data needs to handle this.
Step 3 generate per languageStep 3: Generate Per Language
For each language, call the API with the translated content:
# English version
curl -X POST 'https://render.imejis.io/v1/YOUR_TEMPLATE_ID' \
-H 'dma-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"headline": { "text": "Summer Sale" },
"cta": { "text": "Shop Now" },
"price": { "text": "$29.99" }
}'
# German version (same template)
curl -X POST 'https://render.imejis.io/v1/YOUR_TEMPLATE_ID' \
-H 'dma-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"headline": { "text": "Sommerschlussverkauf" },
"cta": { "text": "Jetzt Kaufen" },
"price": { "text": "27,99 €" }
}'Same template, different data. The auto-sizing text handles the length difference.
Step 4 batch generate all languagesStep 4: Batch Generate All Languages
Loop through your translation data and generate every variant:
const languages = loadFromCSV("translations.csv")
const markets = ["en", "de", "fr", "es", "pt", "ja"]
for (const lang of markets) {
const content = languages.find((l) => l.lang === lang)
const image = await fetch(`https://render.imejis.io/v1/${TEMPLATE_ID}`, {
method: "POST",
headers: {
"dma-api-key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
headline: { text: content.headline },
cta: { text: content.cta },
price: { text: content.price },
}),
})
await saveImage(image, `output/${lang}_promo.png`)
}6 language variants from one template in about 12 seconds. For even larger runs, see our guide on batch image generation from CSV.
Handling special casesHandling Special Cases
Rtl templatesRTL Templates
For Arabic and Hebrew, I create a separate template with mirrored layout:
- Logo moves from top-left to top-right
- Text aligns right instead of left
- Reading flow reversed
Then use the RTL template ID when generating for Arabic markets:
const templateId =
lang === "ar" || lang === "he" ? RTL_TEMPLATE_ID : LTR_TEMPLATE_IDTwo templates cover both directions. The data structure stays the same.
Cjk font loadingCJK Font Loading
For Chinese, Japanese, and Korean, make sure your template includes fonts with CJK glyph coverage. Without them, characters render as empty boxes or fall back to system fonts that break your brand.
In Imejis.io, upload your CJK fonts to the template editor. I recommend Noto Sans CJK (free, covers Chinese, Japanese, and Korean) as a reliable fallback.
Currency and date formattingCurrency and Date Formatting
Don't hardcode currency symbols in your template. Make them part of the dynamic text field:
| Market | Price Display | Date Display |
|---|---|---|
| US | $29.99 | 03/29/2026 |
| Germany | 27,99 € | 29.03.2026 |
| Japan | ¥4,500 | 2026/03/29 |
| Saudi Arabia | ر.س 112 | 29/03/2026 |
Format these in your data pipeline before sending to the API. The template just renders whatever text you pass.
Real world example 10 markets 1 templateReal-World Example: 10 Markets, 1 Template
Here's what a real multi-language campaign looks like for an e-commerce client I worked with:
- 1 template designed for auto-sizing text (tested with German first)
- 1 RTL template for Arabic and Hebrew markets
- 10 languages: English, German, French, Spanish, Portuguese, Italian, Dutch, Arabic, Japanese, Korean
- 500 products in the catalog
- 5,000 images generated (500 products x 10 languages) -- see e-commerce product image automation for the full workflow
- Generation time: About 2.5 hours for all 5,000 images
- Cost on Imejis.io Pro: $24.99/month (10,000 calls covers it)
Doing this manually in Canva? At 10 minutes per image, that's 833 hours. About 21 weeks of full-time work.
How many languages to start withHow Many Languages to Start With
Don't try to launch in 20 languages at once. Start small and scale:
Phase 1 (3-5 languages): Your top revenue markets. For most Western businesses: English, Spanish, French, German, Portuguese.
Phase 2 (add 3-5 more): Expand based on traffic data. Common additions: Italian, Dutch, Japanese, Korean, Arabic.
Phase 3 (10+): Add Hindi, Thai, Vietnamese, Turkish, Polish based on growth opportunities.
Each new language is just a new column in your translation spreadsheet and one more iteration in your generation loop. The template work is already done.
Getting startedGetting Started
- Sign up for Imejis.io with 100 free API calls per month
- Design a template with auto-sizing text fields. Test with German content first.
- Prepare translations in a spreadsheet (one column per language)
- Generate a test batch in 3-5 languages to validate the layout
- Create an RTL template if you're targeting Arabic or Hebrew markets
- Batch generate your full catalog across all languages
For API pricing, see our Image Generation API Pricing Comparison. For other automation use cases, check our Dynamic Product Images, WhatsApp Personalized Images, and Email Marketing Image Personalization guides. And if you're evaluating which API to use, our Image API Checklist covers the 20 things to compare.
FaqFAQ
How do i generate images in multiple languages with an apiHow do I generate images in multiple languages with an API?
Design a template with dynamic text fields in Imejis.io, then call the API with translated text for each language. The same template produces images in English, German, Arabic, Chinese, or any language your fonts support.
How do i handle german text expansionHow do I handle German text expansion?
German can be up to 35% longer than English. Use auto-sizing text fields that shrink the font when content is longer. Design your template with German test content first to set appropriate container sizes.
Can image apis handle rtl languagesCan image APIs handle RTL languages?
Most support RTL text if you use the right fonts. For Arabic and Hebrew, create a separate template with mirrored layout. Test thoroughly before launching.
Does localized content convert betterDoes localized content convert better?
Yes. Localized content drives 20-30% more revenue. 76% of shoppers prefer their native language, and campaigns with full localization see 2-3x higher conversion rates.
How many languages should i start withHow many languages should I start with?
Start with 3-5 based on your top markets. English, Spanish, French, German, and Portuguese cover most Western markets. Scale based on your audience data.
Go global without multiplying your design workGo Global Without Multiplying Your Design Work
Your content is already translated. Your template is already designed. The API connects the two. Try Imejis.io free and generate your first multi-language campaign today.