Moin
01.Декабрь.2024 18:33:38
5
Я не думаю, что проблема связана с конкретным переводом.
Когда пост скрывается из-за флагов от сообщества, автору отправляется личное сообщение, содержащее причину. Например:
Эти причины используются при создании сообщения.
already_suspended: "User was already suspended by %{staff} %{time_ago}."
cannot_delete_has_posts:
one: "User %{username} has %{count} post in a public topic or personal message, so they can't be deleted."
other: "User %{username} has %{count} posts in public topics or personal messages, so they can't be deleted."
cannot_bulk_delete: "One or more users cannot be deleted either because they're an admin, have too many posts or have a very old post."
cannot_remove_all_auth: "You must have at least one associated account, a passkey, or a password set."
Код, который добавляет эту причину в сообщение, использует post_action_type.
# inform user
if user.present?
options = {
url: url,
edit_delay: SiteSetting.cooldown_minutes_after_hiding_posts,
flag_reason:
I18n.t(
"flag_reasons.#{post_action_type_view.types[post_action_type_id]}",
locale: SiteSetting.default_locale,
base_path: Discourse.base_path,
),
}
message = custom_message
message = hiding_again ? :post_hidden_again : :post_hidden if message.nil?
Jobs.enqueue_in(
5.seconds,
:send_system_message,
user_id: user.id,
This file has been truncated. show original
Это работает для стандартных причин флагов. Например, flag_reasons.spam, как показано на скриншоте выше.
Проблема в том, что для пользовательских причин флагов нет соответствующей строки. Например, если вы создадите причину «Testing» и включите Auto hide flagged content.
Тогда будет использоваться flag_reasons.custom_testing. Однако такой причины не существует. Язык не имеет значения; её нет даже в английском варианте, поскольку это пользовательский флаг.
Та же причина используется и при удалении поста (см. скриншот в сообщении RGJ).
message_options: {
flagged_post_raw_content: notify_responders ? options[:parent_post].raw : @post.raw,
flagged_post_response_raw_content: @post.raw,
url: notify_responders ? options[:parent_post].url : @post.url,
flag_reason:
I18n.t(
"flag_reasons#{".responder" if notify_responders}.#{flag_type}",
locale: SiteSetting.default_locale,
base_path: Discourse.base_path,
),
},
Кстати, для «ответчиков» также отсутствует недопустимая причина.
4 лайка