Перейти к основному содержимому

Словари

Как переводить фиксированные тексты интерфейса сайта.

Введение​

Словари — это система переводов фиксированных текстов интерфейса сайта: подписей, сообщений, текстов кнопок — всего того, что не является содержимым страницы, а представляет собой текст, «встроенный» в код, и при этом должно существовать на каждом языке.

Она включает две формы в бэк-офисе:

  • Запись (dictionary_entry)
  • Словарь (dictionary)

Запись​

Определяет «ключ» перевода — Код (code, используется в коде для получения значения) и Описание. Например: запись uspeshnaya-otpravka-formy, используемая для сообщения об успешной отправке контактной формы (именно она отображается в ContactForm раздела «Функциональность»).

Словарь​

Это переведённое значение Записи для определённого Языка (language_id) — поле Значение (value, принимает HTML).

Без общего значения / без языка

В отличие от Настроек, у Словаря нет механизма резервного значения без языка — для каждой Записи нужно явно задать Значение для каждого языка, на котором она используется. Если перевод для какого-либо языка отсутствует, отображается сам код Записи (например, uspeshnaya-otpravka-formy), а не общее значение.

Программно​

Класс website/src/common/Cluar.js предоставляет функции для чтения записей словаря; все они возвращают код записи, если перевода нет (это помогает заметить отсутствующие переводы):

  • Cluar.dictionary(zapis) — получает переведённое значение на текущем языке в том виде, в котором оно сохранено (может содержать HTML).
  • Cluar.plainDictionary(zapis) — то же, но удаляет теги <p> и <br>. Чаще всего используется в подписях интерфейса (кнопки, поля форм, уведомления).
  • Cluar.plainTitle(zapis) — то же, но удаляет только теги <p>.
  • Cluar.plainHTML(zapis) — удаляет все HTML-теги.
  • Cluar.dictionaryNoParagraph(zapis) — удаляет только теги <p> (эквивалентно plainTitle).

Следующий шаг​

Изучите Шаблоны.