Alpha
Compiler от Lingo.dev находится в alpha-версии. Он нестабилен, не рекомендуется для использования в production, а API могут меняться от релиза к релизу.
Атрибут data-lingo-override позволяет точно управлять переводом отдельных элементов. Если вам нужен точный перевод названия бренда, юридического текста или маркетингового заголовка, добавьте этот атрибут к любому JSX-элементу, и Compiler будет использовать заданные вами переводы вместо того, чтобы генерировать их с помощью ИИ.
Базовое использование#
Передайте объект, который сопоставляет коды локалей с переводами:
<h1 data-lingo-override={{ es: "Bienvenido", de: "Willkommen", fr: "Bienvenue" }}>
Welcome
</h1>Compiler использует значение переопределения для каждой указанной локали. Для локалей, которых нет в объекте переопределения, переводы генерируются как обычно.
Как работают переопределения#
Compiler обнаруживает JSX-элемент с data-lingo-override
На этапе анализа AST Compiler определяет, что у элемента есть атрибут data-lingo-override.
Значения переопределений извлекаются
Сопоставление локалей и переводов считывается из значения атрибута.
Переопределения имеют приоритет
Для каждой локали, указанной в объекте переопределения, Compiler использует заданный перевод. Перевод с помощью ИИ для этих локалей пропускается. Локали, которых нет в переопределении, переводятся как обычно.
Сценарии использования#
| Сценарий | Зачем использовать переопределение | Пример |
|---|---|---|
| Названия брендов | ИИ может локализовать названия, которые должны оставаться единообразными на всех языках | data-lingo-override={{ es: "Lingo.dev", de: "Lingo.dev" }} |
| Маркетинговые тексты | Конкретная формулировка, созданная копирайтером | data-lingo-override={{ es: "Tu motor de localizacion" }} |
| Юридический текст | Нормативные требования предполагают точную формулировку | data-lingo-override={{ de: "Datenschutzerklarung" }} |
| Идиомы и каламбуры | Игра слов, требующая человеческой креативности | data-lingo-override={{ fr: "C'est la vie" }} |
| UI со строгими ограничениями по длине | Переводы ИИ могут не уложиться в доступное пространство | data-lingo-override={{ ja: "OK" }} |
Примеры#
Текст абзаца#
<p data-lingo-override={{ es: "Crea un motor de localizacion en Lingo.dev" }}>
Create a localization engine on Lingo.dev
</p>Атрибуты#
Переопределения применяются к текстовому содержимому элемента. Для переводимых атрибутов, таких как placeholder, alt или aria-label, Compiler обрабатывает их отдельно через стандартный пайплайн перевода атрибутов.
Частичные переопределения#
Необязательно задавать переопределения для каждой целевой локали. Указывайте только те локали, для которых нужен ручной контроль:
<h2 data-lingo-override={{ ja: "はじめに" }}>
Getting Started
</h2>В этом примере для японского языка используется переопределение, а все остальные целевые локали получают переводы, сгенерированные ИИ.
Когда использовать переопределения, а когда — другие подходы#
| Подход | Когда использовать |
|---|---|
data-lingo-override | Отдельные элементы, для которых вы точно знаете нужный перевод. |
| Glossary (Lingo.dev Engine) | Термины, которые должны переводиться единообразно во всём приложении. |
| Brand Voice (Lingo.dev Engine) | Предпочтения по тону и стилю, которые применяются ко всем переводам. |
| Пользовательские промпты | Общие инструкции по переводу для всего контента. |
Переопределения — самый точечный вариант: они применяются к одному конкретному элементу. Если вам нужна согласованность на уровне всего проекта, используйте вместо этого glossary или тональность бренда через движок локализации Lingo.dev.
