Атрибут 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.