Глобальная замена переводов

:information_source: Краткое описание Этот плагин позволяет глобально заменять определённые слова в переводах
:hammer_and_wrench: Ссылка на репозиторий https://github.com/Lhcfl/replace-translations-global
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Буквально заменяет все вхождения одного слова на другое

Например, замена слова «Topic» на «Nya»:

Настройка

Считаю, что параметры настроек очевидны сами по себе :slightly_smiling_face:

Обратите внимание: переводы кэшируются, поэтому внесение изменений занимает время. Чтобы принудительно обновить кэш, выполните следующие команды:

sudo ./launcher enter app
rm -rf tmp
14 лайков

Можно ли использовать это как замену официального пользовательского текста?

Вот проблема, с которой я столкнулся: я не могу массово изменить эти ключи и значения!

Или, может быть, @Lhc_fl, у вас есть лучший способ?

Этот плагин предназначен для массовой замены переводов. Однако из-за кэширования после замены может потребоваться пересборка (rebuild), чтобы изменения вступили в силу.

Я имею в виду, нет ли у Discourse официального метода для массового изменения? Например, экспорт в YAML-файл и замена через VS Code?

Такого метода нет, приходится менять каждый по отдельности

Ваш инструмент действительно отличный!

Каждое изменение требует ./launcher rebuild app
Вручную пересобирать?
sudo ./launcher enter app
rm -rf tmp
Я не заметил никакого эффекта.

Сначала попробуйте (после удаления tmp) ./launcher restart app?

Я удалял tmp в режиме разработки, возможно, здесь это применилось автоматически.

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

1 лайк

Напоминаем, что включение английского перевода значительно упрощает понимание для других участников. :pray:

4 лайка

Только что попробовал, снова ошибка. Лучше пересоздать — так стабильнее.

Если вы используете это для замены термина category на другой, имейте в виду, что этот плагин также заменяет это слово в шаблонах, таких как {category}, что приводит к ошибкам в интерфейсе. Чтобы избежать этого, я использую регулярное выражение
en:(?<!\{)category(?!\})=chapter
в настройках плагина, но, возможно, плагин следует доработать, чтобы он воздействовал только на контент, видимый пользователю.

3 лайка

@Lhc_fl есть ли какие-либо планы на этот счёт? Ваш плагин, похоже, именно то, что мне нужно, чтобы исправить некоторые термины для моего сообщества на французском языке, но я беспокоюсь о том, чтобы не сломать что-то, как описано в посте выше от tomtjes.

Почему замена не удалась

(Это плагин Globally replace translations)

Возможно, вам следует использовать => вместо знака =, как в символах = и >? Стрелка на вашем скриншоте выглядит неправильно.

Использование знаков действительно корректно — это отдельные символы = и >. Они кажутся слитными из-за проблемы с отображением.

1 лайк

Понял, в любом случае, это следует перенести в тему того плагина, так как это не #официально.

Хорошо, понял, спасибо за информацию. (Почему нужно набрать 20 символов, чтобы ответить?)

Если я правильно понимаю код, плагин использует JsLocaleHelper для замены текста, отображаемого на фронтенде (содержимое файлов client.*.yml). Файлы server.*.yml, содержащие, например, описания настроек сайта, остаются без изменений.

«azy videos» — это просто пример того, для чего вы хотите использовать плагин? Плагин разработан для замены конкретного термина в большом количестве текстов. Поскольку этот текст встречается на форуме только один раз, вы можете просто отредактировать его напрямую, не используя плагин. Существует руководство о том, как это сделать: Customize text in Discourse

2 лайка

Я хочу изменить этот английский текст, но не могу найти его


1 лайк

Это названия настроек. Я объяснил, почему они не переводятся, на странице 有没有比较好的中文插件 - #2 by Moin.
Вы не можете настраивать тексты, которые не переводятся, через административный интерфейс.

Кстати, если я упустил что-то, касающееся возможности этого плагина изменять также тексты на бэкенде, я всё ещё уверен, что он меняет только переводимые тексты, а не другие тексты в интерфейсе. Речь идёт о замене слов в текстах, а не о возможности перевода непереводимых текстов.

2 лайка