Multilingual Content Agents: Localising for Hebrew, Arabic and English Accounts Without Translating
Running content in several languages with AI agents: localisation versus translation, Hebrew and Arabic right-to-left pitfalls, and per-account captions.
8 min read

A multilingual content agent should write each account's caption natively in that account's language from a shared brief, not translate an English master line by line. In Shager that means one post per language group, with a separate caption per account in per_channel, and a language-specific link, YouTube title and first comment. For right-to-left languages like Hebrew and Arabic, the agent also has to handle mixed-direction text: numbers, URLs, brand names and hashtags inside RTL sentences.
The second half of that answer is where most multilingual runs go wrong, and it is invisible until the post is live on a phone.
Localisation versus translation
The W3C's definition is useful because it is precise. Its internationalisation FAQ describes localisation as adapting content to a specific target market, a locale, and notes that it goes well beyond translating text: formats for dates and numbers, currency, conventions, culture.
For social content, that gap is enormous. A translated caption keeps the English structure, the English joke and the English call to action, rendered in another language. A localised caption starts from what the post is for, then writes what a native copywriter in that market would write.
Concrete examples of what a translation misses:
- Hebrew addresses the reader by gender. An English "Book your table" has no gender. In Hebrew, the imperative is masculine, feminine or plural, and brands make deliberate choices about it. An agent translating mechanically will pick one at random per post, which reads as inconsistent across forty pages.
- Arabic has register choices. Modern Standard Arabic and regional dialects coexist, and the right choice depends on the brand and the audience. A brief should state which one, and the agent should not drift between them.
- Dates and prices. "11/10" means different days in different countries. Currency symbols sit on different sides of the number. Write dates in words when in doubt.
- Holidays and rhythm. The working week, public holidays and quiet periods differ by market. An Israeli audience on the eve of a major holiday, or an audience in a Muslim-majority country during Ramadan evenings, behaves differently from a generic Tuesday.
The practical rule for the agent: the brief is the source of facts, never the source of sentences.
How to structure a multilingual client in Shager
Shager is built Hebrew-first with a right-to-left interface and a full English site, and it treats each account's caption as its own text. That fits how multilingual work should be organised.
- Group accounts by language. Use
create_groupto make one group per language, for example "Aurora HE", "Aurora AR", "Aurora EN". Groups belong to the client's workspace. - One post per language group. Some fields are set once per post:
cta_url,youtube_title,campaign. Language-specific landing pages and YouTube titles therefore need separate posts per language. This also keeps reporting per language clean. - Captions per account inside each post.
per_channeltakes acaptionand afirst_commentfor eachchannel_id. Even within one language, vary the wording per account, as covered in caption variation per account with AI.
A Hebrew post for a three-branch client looks like this:
{
"tool": "create_post",
"arguments": {
"workspace_id": "ws_example",
"group_ids": ["grp_aurora_he"],
"caption": "הקולקציה החדשה מגיעה לסניפים ביום חמישי.",
"cta_url": "https://aurora-example.co.il/he/new-collection",
"campaign": "new-collection-he",
"youtube_title": "הקולקציה החדשה של אורורה",
"label": "Aurora new collection HE",
"per_channel": [
{ "channel_id": "ch_fb_haifa",
"caption": "חיפה, הקולקציה החדשה כבר בדרך. ביום חמישי היא אצלנו בסניף.",
"first_comment": "לכל הפרטים ולתיאום ביקור:\nhttps://aurora-example.co.il/he/new-collection" },
{ "channel_id": "ch_fb_beersheva",
"caption": "באר שבע, ביום חמישי נפתח את הארגזים. בואו לראות ראשונים." }
]
}
}
The Arabic and English posts are created the same way, with their own landing pages and campaigns. Because Shager gives every account its own short link and UTM tags, with utm_content identifying the account, click data stays per account and per language without any extra work.

The right-to-left problems your agent will not see
A language model produces a string of characters in logical order. The phone renders it with the Unicode Bidirectional Algorithm, which decides visually where each run of left-to-right and right-to-left text sits. When a Hebrew or Arabic sentence contains English words, digits, URLs or punctuation, the result can differ from what the writer intended.
The W3C's internationalisation glossary points out that numbers in RTL scripts are displayed left to right and that bidirectional text is the source of many difficulties with RTL scripts. The usual symptoms in social captions:
- Punctuation jumps to the wrong end. A Hebrew sentence that ends with an English brand name and a full stop can show the full stop on the left of the brand, in the middle of the line.
- The base direction flips. If a caption starts with an English word or a number, a platform that sets direction by the first strong character will lay out the whole paragraph left to right. The W3C's notes on bidi in social media, based on older tests, observed Facebook using first-strong detection for comments. Platforms change, so verify on current apps.
- Prices and ranges reorder. "50 to 100" written with a hyphen between digits inside Hebrew text can display reversed relative to the reader's expectation.
- Hashtags in mixed scripts. A hashtag that mixes Latin and Hebrew characters may break or render oddly.
Rules to give the agent for RTL captions
These go into the standing instructions for any client with Hebrew or Arabic accounts.
- Start every RTL caption with a word in the RTL script, never with a number, a brand name in Latin letters or an emoji.
- Do not end an RTL caption with a Latin word followed by punctuation. Rephrase so the sentence ends in the RTL script.
- Put URLs on their own line, never in the middle of an RTL sentence.
- Write ranges and prices in words or restructure the sentence, rather than relying on symbols between numbers.
- Where a Latin brand name must sit mid-sentence and display breaks, a right-to-left mark (U+200F) after the Latin run usually restores the order. Use it sparingly, and only after testing, since invisible characters make text harder to edit later.
- Before scheduling, have a native speaker check one rendered example per network on a phone. A screenshot review catches what no string check will.
Shager's Hebrew writing assistant helps on the human side of this, for teams that edit or approve Hebrew captions in the interface. The agent still needs the rules above, because it writes before anyone looks.
Approval in the client's language
When a client in a different market approves content, they should see their own language. Shager's approval links let a reviewer approve without logging in; the agent sends them with request_approval, giving a reviewer_name and, optionally, an email or phone number. Send the Hebrew post to the Hebrew-speaking marketing manager and the Arabic post to the person who actually reads Arabic. A single English reviewer approving three languages is approving only one of them. The approval flow is described in human approval for agent posts.
Time zones and calendars
A client whose Arabic-speaking audience sits in a different country from its Hebrew-speaking one may need different posting times per language. Since each language is a separate post, each can have its own schedule_at, with the offset computed for the right zone. Shager's calendar includes Israeli holidays; for other markets, put the relevant holidays into the client's context file. The scheduling rules are in scheduling strategy for agents.
FAQ
Can one post contain captions in different languages for different accounts?
Yes. per_channel captions are free text per account, so a single post can mix languages. I would still split by language whenever the link, YouTube title or posting time should differ, because those fields are set once per post.
Should the agent write the master in English and localise from it?
Only if the brief is in English. A better pattern is a brief of facts and goals in whatever language the client uses, and native captions written from that brief for each language. Translating an English caption imports English structure into every other language.
Does Shager handle right-to-left text correctly?
Shager's own interface is right-to-left first, and captions go to the networks as the agent wrote them, apart from links, which are swapped for each account's tracked short link, and the call to action line when you set cta_url. How a caption renders is decided by each network's apps, so the rules above, and a quick check on a phone, still apply.
Where to go next
Set up language groups in one client's workspace and run a single post in each language before scaling. The agent entry point covers connecting your agent if you have not yet.