Ат­ри­бут translate в HTML5

В HTML5 есть атрибут — translate. Идея такого булева флага — «переводить или не переводить» постоянно вызывает довольно большой интерес у локализаторов, создателей текста, и всех тех, кто работает с языковыми технологиями.

КАК РАБОТАЕТ?

Обычно или автор текста, или среда вывода, которая автоматически формирует текст, ставит этот атрибут в разметку страницы. Кроме того, в ситуации промышленного перевода локализаторы могут добавлять этот атрибут на стадии подготовки перевода, чтобы избежать множества ошибок перевода при большом количестве языков в одном тексте.

На рендеринге страницы этот атрибут никак не сказывается (впрочем, можно добавить к нему свои стили). Этот атрибут в основном будет полезен для тех инструментов, которые используются в процессе перевода текста — будь это тщательная работа профессиональных переводчиков, быстрые API или облачные сервисы перевода коротких текстовых фрагментов.

Этот атрибут может быть применён к любому элементу, и может иметь одно из двух значений: yes или no. Если значение — no, инструменты перевода должны предохранять текст внутри элемента от перевода. Этот инструмент может быть считан автоматической системой перевода (как, например, в онлайн-сервисах Google или Microsoft) или профессиональной системой перевода, которая не будет давать переводчику случайно изменить текст.

Если установить этот флаг на элемент, то же самое значение будет применено ко всем вложенным элементам и атрибутам этих элементов.

Для того, чтобы система работала, не нужно использовать translate="yes". Если на странице нет атрибута translate, система перевода (или переводчик) должна предположить, что перевести нужно весь текст. Вряд ли значение yes используется широко, хотя оно может быть очень полезно, если вам нужно переопределить значение флага translate на родительском элементе и указать кусочки текста, которые должны быть переведены. Например, вы можете захотеть перевести комментарии на обычном языке в исходном коде, а сам код оставить без перевода.

ЗАЧЕМ ЭТО НУЖНО?

Потребность в этом встречается довольно часто. В спецификации HTML5 есть пример с игрой про пчелу и мёд. Вот похожий, но на этот раз реальный пример из опыта работы в Xerox, где документация, которая переводилась на другой язык, относилась к устройству, на котором текст находился прямо на «железе» и поэтому не переводился. Это оригинальный текст на английском:

<p>Click the Resume button on the Status Display or the <span class="panelmsg" translate="no">CONTINUE</span> button the printer panel.</p>

А вот текст перевода на русский:

<p>Нажмите кнопку «Продолжить» на дисплее состояния или кнопку <span class="panelmsg" translate="no">CONTINUE</span> на панели принтера.</p>

Таким образом, добавив на вашу страницу атрибут translate, вы поможете читателям лучше понять ваш текст, если они читают его через системы автоматического перевода, и значительно сэкономить денежные и временные затраты системам перевода с большим потоком информации на разных языках.

Подробнее смотри источник