Lingo.dev CLI a localization API podporují dva způsoby lokalizace e-mailů: překlad souborů šablon při buildu, abyste mohli nasadit šablony pro každý jazyk, nebo překlad obsahu za běhu před odesláním. Obojí prochází přes nakonfigurovaný lokalizační engine, který automaticky použije pravidla glosáře, hlas značky a výběr modelu.
Vyberte si přístup#
| Přístup | Nejvhodnější pro | Jak to funguje |
|---|---|---|
| Build-time (CLI) | Soubory šablon – react-email, MJML, HTML | Přeložte soubory v repozitáři a nasaďte šablony pro každý jazyk |
| Runtime (API) | Dynamický obsah, šablony renderované v ESP | Před odesláním zavolejte localization API a předejte přeložený obsah svému e-mailovému providerovi |
Který přístup zvolit?
Pokud máte e-mailové šablony v repozitáři uložené jako soubory (HTML, MJML nebo React komponenty), zvolte build-time přístup. Pokud se obsah e-mailů generuje dynamicky nebo je uložený u vašeho poskytovatele e-mailových služeb, zvolte runtime přístup.
Co budete potřebovat#
Každý překlad prochází přes lokalizační engine – konfiguraci, která určuje, jaký LLM model, glosář, hlas značky a instrukce se použijí. Vytvořte ho v dashboardu Lingo.dev a vygenerujte API key.
Lokalizace při buildu#
CLI překládá soubory e-mailových šablon přímo. Nastavte bucket, který odpovídá formátu vašich šablon, spusťte CLI a získejte soubory šablon pro každý jazyk vedle zdrojových šablon.
Šablony react-email jsou React komponenty, které se renderují do HTML. Vyčleňte přeložitelné řetězce do JSON resource souborů pomocí i18n knihovny, například react-i18next, a pak přeložte JSON soubory pomocí CLI.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["emails/locales/[locale].json"]
}
}
}Při renderování předejte jazyk své e-mailové komponentě a načtěte odpovídající JSON soubor. Funkce react-email render() pak vytvoří HTML pro daný jazyk připravené k odeslání.
Překlady spustíte pomocí:
npx lingo.dev@latest runLokalizace za běhu#
Když je obsah e-mailů dynamický – personalizované notifikace, souhrny obsahu vytvořeného uživateli nebo marketingové texty uložené v CMS – přeložte ho za běhu před odesláním. Tento přístup vychází ze vzoru popsaného v průvodci Translation API.
async function sendLocalizedEmail(userId, templateId, content) {
const user = await db.users.findById(userId);
const response = await fetch("https://api.lingo.dev/process/localize", {
method: "POST",
headers: {
"X-API-Key": process.env.LINGODOTDEV_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
engineId: "eng_abc123",
sourceLocale: "en",
targetLocale: user.locale,
data: {
subject: content.subject,
preheader: content.preheader,
body: content.body,
},
}),
});
const { data } = await response.json();
await emailProvider.send({
to: user.email,
subject: data.subject,
html: renderTemplate(templateId, data),
});
}Osvědčené postupy#
| Oblast | Doporučení |
|---|---|
| Předměty e-mailů | Držte se pod 50 znaky. Pomocí glosáře uzamkněte názvy značek, aby se nepřekládaly. |
| Preview text | Překládejte ho odděleně od těla e-mailu – e-mailoví klienti ho zobrazují samostatně. |
| Hlas značky | Nastavte tone pro každý jazyk v lokalizačním engine. Marketingové e-maily v japonštině vyžadují jiný rejstřík než v němčině. |
| RTL jazyky | Otestujte vyrenderovaný výstup v e-mailových klientech pro arabštinu, hebrejštinu a perštinu. Zpracování HTML dir="rtl" se napříč klienty liší. |
| Uzamykání klíčů | Použijte locked keys pro URL, názvy produktů a právní identifikátory, které by se neměly překládat. |
