Как можно локализовать (мультиязычно) бейджи и группы?

На каждом сайте есть предустановленные значки, которые интернационализируются (i18n) через Crowdin.

Пользовательские значки хранят название и описание как обычный текст в базе данных. Когда вызывается I18n.t (функция интернационализации) с ключом вроде badges.my_custom_badge.name, соответствующий перевод не находится, поэтому система возвращается к значению, сохранённому в БД — один и тот же текст для всех локалей.

Существует обходной путь: администраторы могут вручную добавлять переводы для ключей пользовательских значков для каждой локали.

Вы можете настроить тексты своего сайта по адресу <ваш сайт>/admin/customize/site_texts.


Конкретные шаги для вас:

  1. Создайте значок
  • Перейдите в /admin/badges → Новый значок
  • Укажите название, описание, иконку и т. д. как обычно
  1. Определите ключ i18n
  • Шаблон ключа: badges.{snake_case_name}.name
  • snake_case_name — это название значка в нижнем регистре, где пробелы заменены на подчёркивания
  • Например: “Pokémon Master” → badges.pokémon_master.name
  1. Добавьте переопределения переводов
  • Перейдите в /admin/customize/site_texts
  • Найдите badges.pokémon_master
  • Вы увидите ключи, такие как:
    • badges.pokémon_master.name
    • badges.pokémon_master.description
    • badges.pokémon_master.long_description
  • Переключитесь на нужную локаль (например, 简体中文), кликните по ключу и введите переведённый текст
  1. Повторите для каждой локали
  • Переключайте локаль в выпадающем списке и добавляйте переводы для каждого необходимого языка
    • .name — заголовок значка
    • .description — краткое описание, отображаемое на карточках значков
    • .long_description — полное описание, отображаемое на странице деталей значка

английский

японский

4 лайка