Files
MagicMirror/translations/ru.json
Kristjan ESPERANTO df8a882966 fix(newsfeed): fix full article view and add framing check (#4039)
I was playing around with the newsfeed notification system
(`ARTICLE_MORE_DETAILS`, `ARTICLE_TOGGLE_FULL`, …) and discovered some
issues with the full article view:

The iframe was loading the CORS proxy URL instead of the actual article
URL, which could cause blank screens depending on the feed. Also, many
news sites block iframes entirely (`X-Frame-Options: DENY`) and the user
got no feedback at all — just an empty page. On top of that, scrolling
used `window.scrollTo()` which moved the entire MagicMirror page instead
of just the article.

This PR cleans that up:

- Use the raw article URL for the iframe (CORS proxy is only needed for
server-side feed fetching)
- Check `X-Frame-Options` / `Content-Security-Policy` headers
server-side before showing the iframe — if the site blocks it, show a
brief "Article cannot be displayed here." message and return to normal
view
- Show the iframe as a fixed full-screen overlay so other modules aren't
affected, scroll via `container.scrollTop`
- Keep the progressive disclosure behavior for `ARTICLE_MORE_DETAILS`
(title → description → iframe → scroll)
- Delete `fullarticle.njk`, replace with `getDom()` override
- Fix `ARTICLE_INFO_RESPONSE` returning proxy URL instead of real URL
- A few smaller fixes (negative scroll, null guard)
- Add `NEWSFEED_ARTICLE_UNAVAILABLE` translation to all 47 language
files
- Add e2e tests for the notification handlers (`ARTICLE_NEXT`,
`ARTICLE_PREVIOUS`, `ARTICLE_INFO_REQUEST`, `ARTICLE_LESS_DETAILS`)

## What this means for users

- The full article view now works reliably across different feeds
- If a news site blocks iframes, the user sees a brief message instead
of a blank screen
- Additional e2e tests make the module more robust and less likely to
break silently in future MagicMirror versions
2026-03-01 00:32:42 +01:00

55 lines
2.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"LOADING": "Загрузка …",
"DAYBEFOREYESTERDAY": "Позавчера",
"YESTERDAY": "Вчера",
"TODAY": "Сегодня",
"TOMORROW": "Завтра",
"DAYAFTERTOMORROW": "Послезавтра",
"RUNNING": "Заканчивается через",
"EMPTY": "Нет предстоящих событий",
"WEEK": "Неделя {weekNumber}",
"N": "С",
"NNE": "ССВ",
"NE": "СВ",
"ENE": "ВСВ",
"E": "В",
"ESE": "ВЮВ",
"SE": "ЮВ",
"SSE": "ЮЮВ",
"S": "Ю",
"SSW": "ЮЮЗ",
"SW": "ЮЗ",
"WSW": "ЗЮЗ",
"W": "З",
"WNW": "ЗСЗ",
"NW": "СЗ",
"NNW": "ССЗ",
"FEELS": "По ощущению {DEGREE}",
"PRECIP_POP": "Вероятность осадков",
"PRECIP_AMOUNT": "Количество осадков",
"MODULE_CONFIG_CHANGED": "Настройки модуля {MODULE_NAME} изменены.\nПожалуйста, проверьте документацию.",
"MODULE_CONFIG_ERROR": "Ошибка в модуле {MODULE_NAME}. {ERROR}",
"MODULE_ERROR_MALFORMED_URL": "Неверный URL.",
"MODULE_ERROR_NO_CONNECTION": "Нет интернет-соединения.",
"MODULE_ERROR_UNAUTHORIZED": "Не удалось авторизоваться.",
"MODULE_ERROR_RATE_LIMITED": "Слишком много запросов. Повторная попытка позже.",
"MODULE_ERROR_SERVER_ERROR": "Ошибка сервера. Повторная попытка позже.",
"MODULE_ERROR_CLIENT_ERROR": "Запрос не удался.",
"MODULE_ERROR_UNSPECIFIED": "Пожалуйста, проверьте логи для получения дополнительной информации.",
"NEWSFEED_NO_ITEMS": "В данный момент нет новостей.",
"NEWSFEED_ARTICLE_UNAVAILABLE": "Статья не может быть отображена здесь.",
"UPDATE_NOTIFICATION": "Есть обновление для MagicMirror².",
"UPDATE_NOTIFICATION_MODULE": "Есть обновление для {MODULE_NAME} модуля.",
"UPDATE_INFO_SINGLE": "Данная инсталляция позади {BRANCH_NAME} commit ветки на {COMMIT_COUNT} коммитов.",
"UPDATE_INFO_MULTIPLE": "Данная инсталляция позади {BRANCH_NAME} commits ветки на {COMMIT_COUNT} коммитов.",
"UPDATE_NOTIFICATION_DONE": "Обновление модуля {MODULE_NAME} завершено.",
"UPDATE_NOTIFICATION_ERROR": "Ошибка обновления модуля {MODULE_NAME}.",
"UPDATE_NOTIFICATION_NEED-RESTART": "Требуется перезапуск MagicMirror."
}