Атрибут translate тега <code>
Описание
Атрибут translate указывает, должен ли автоматический перевод (например, Google Translate) переводить содержимое тега <code>. Это особенно важно для сохранения работоспособности кода и технических терминов.
<code translate="no">
// Этот код не будет переведен
function hello() { return "Hello"; }
</code>
<code translate="yes">
/* Этот комментарий может быть переведен */
</code>
Значения атрибута:
| Значение | Поведение | Рекомендуется для |
|---|---|---|
yes |
Разрешает перевод содержимого | Комментариев и строковых литералов |
no |
Запрещает перевод содержимого | Синтаксиса кода, имен функций, переменных |
Практические рекомендации:
- Всегда запрещайте перевод для:
- Ключевых слов языка
- Идентификаторов переменных/функций
- Синтаксических конструкций
<code translate="no">const x = 10;</code> - Можно разрешать перевод для:
- Комментариев на естественном языке
- Строковых литералов для локализации
<code> // <span translate="yes">Инициализация переменной</span> let x = 10; </code>
Комбинирование с другими атрибутами:
<code lang="javascript" translate="no">
/**
* <span translate="yes" lang="ru">Описание функции</span>
*/
function calc() { /* ... */ }
</code>
Особенности работы:
- Является рекомендацией для браузера, а не строгим правилом
- Лучше всего работает с автоматическими переводчиками
- Не влияет на ручной перевод пользователем
- Поддерживается всеми современными браузерами
Важные замечания:
- Не заменяет систему интернационализации (i18n)
- Для важных переводов используйте профессиональную локализацию
- Тестируйте с реальными системами перевода
- Для строковых литералов лучше использовать отдельные файлы локализации
Примечание: Хотя атрибут translate полезен для базовой защиты кода от автоматического перевода, для профессиональных многоязычных приложений рекомендуется использовать специализированные решения интернационализации, такие как i18next или formatjs.