Всем привет.
После обновления, которое я сделал примерно неделю назад, на странице профиля пользователя возникла проблема с отображением кнопки, как показано ниже. Я думал, что это будет исправлено в рамках предстоящих обновлений, и хотя я продолжал вносить обновления, ситуация не улучшилась.
Работает ли текст на вашем профиле здесь, в Meta?
Вы ранее настраивали эту строку?
Я также нашел эту тему Turkish translation issue with share dialog, так что, возможно, стоит попробовать пересобрать.
В meta, похоже, проблем нет. Но проблема сохраняется на моём собственном сайте. Я не вносил никаких изменений в настройку или локализацию.
Я также попробовал решение по ссылке, которую вы дали, и пересобрал Discourse. К сожалению, это не помогло.
Вы пробовали другой браузер или режим инкогнито?
Спасибо за вашу обеспокоенность.
Я попробовал в 4 разных браузерах и на мобильном устройстве. Я могу с уверенностью сказать, что это не работает.
Тогда вы, вероятно, уже пробовали безопасный режим.
Перенёс это в поддержку:
Текст здесь отображается корректно… вы уверены, что обновились до самой последней версии?
Я думаю, это связано с
Мне удалось воспроизвести проблему, когда строка для настроек на турецком языке была повреждена. Я кастомизировал js.user.preferences до обновления, и после обновления новый js.user.preferences.title оказался поврежден.
Затем я выполнил
TranslationOverride.where(translation_key: "js.user.preferences").delete_all
TranslationOverride.send(:reload_locale!)
и это помогло ![]()
Но я бы подождил подтверждения от кого-то с большим опытом, прежде чем пробовать это сделать самостоятельно на продакшн-сайте.
Когда я проверяю, значение текста отображается корректно.
Я изменил текст по умолчанию, но это не помогло, и проблема сохраняется.
Безопасно ли делать это в продакшн-окружении? Кто-нибудь может подсказать?
Настройка текста на форуме не работает. Это касается не только этой области.
TL;DR: Существующее переопределение перевода грубо заменяет устаревшее пользовательское переопределение новым переводом, что вызывает проблемы с типами. Или, говоря иначе, не удалось обновить устаревшее переопределение перевода до статуса «устаревшее».
Проблема
На форуме, который я администрирую, существует переопределение перевода js.user.preferences. До этого коммита это была строка, поэтому переопределение перевода работало корректно.
После этого коммита ключ стал объектом. Однако переопределение перевода не определяет тип ключа и напрямую перезаписывает его на старую определенную строку. Это приводит к отсутствию перевода ключа в интерфейсе.
Как воспроизвести
Для последних версий форумов, похоже, требуется вручную вставить устаревшую запись, чтобы спровоцировать проблему:
INSERT INTO translation_overrides
(locale, translation_key, value, created_at, updated_at)
VALUES
('en', 'js.user.preferences', 'test', current_timestamp, current_timestamp);
Затем измените произвольный текст сайта, чтобы запустить обновление.
Похоже, что каким-то образом статус этого переопределения не был обновлен до «устаревшее»:
[5] pry(main)> TranslationOverride.last
TranslationOverride Load (1.2ms) SELECT "translation_overrides".* FROM "translation_overrides" ORDER BY "translation_overrides"."id" DESC LIMIT 1
=> #<TranslationOverride:0x00007f0b20a31e20
id: 18,
locale: "en",
translation_key: "js.user.preferences",
value: "test",
created_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
updated_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
compiled_js: nil,
original_translation: nil,
status: "up_to_date">
Я перенёс ваш репродуцент в предыдущие отчёты, чтобы они были сгруппированы вместе. ![]()
Ого, я не заметил, что здесь уже есть похожий отчёт об ошибке ().
Я уже разбираюсь в этом, но это странно, мне кажется, это должно работать нормально… Не понимаю, что здесь происходит.
Это должно быть безопасно для производственного сайта.
(однако, пожалуйста, сделайте резервную копию перед внесением изменений в консоль Rails, так как могут произойти ошибки)
Хотя, если никакая кастомизация текста не работает, вы уверены, что это та же самая проблема?
Эта проблема была решена в последнем обновлении. (3.4.0.beta1-dev)
Да, я также подтверждаю, что проблема была решена в текущем обновлении.
Эта тема была автоматически закрыта через 14 часов. Новые ответы больше не принимаются.












