mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-25 11:03:53 +00:00
Issue #7599 follow-up from @stffen: the OG description has no obvious settings.json knob and the i18n catalog default is English, but most preview crawlers (WhatsApp, Signal, Slack, Telegram, Facebook) don't send Accept-Language and so always hit the English fallback regardless of how many locale files translate `pad.social.description`. Keep the i18n catalog as the default source — translatable strings belong in locale files, per the original Qodo review on PR #7635 — but add an explicit `socialMeta.description` setting that wins when set as a non-empty string, regardless of negotiated language. This is the lever that fixes the crawler case for non-English instances without re-introducing per-language config in settings.json (operators who want that still use customLocaleStrings). - Empty/whitespace overrides are treated as unset (would otherwise silently blank the preview). - Override is HTML-escaped via the same path as every other value. - og:locale stays language-negotiated; only the description is forced. - Documented next to publicURL in settings.json.template and settings.json.docker (env var SOCIAL_META_DESCRIPTION). The customLocaleStrings example now spells out pad.social.description so operators discover both routes. 5 new unit specs + 4 new integration specs cover override-wins, null/missing fallback, blank-treated-as-unset, and HTML-escaping. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 2026-04-18-gdpr-pr1-deletion-controls-design.md | ||
| 2026-04-18-gdpr-pr2-ip-privacy-audit-design.md | ||
| 2026-04-19-gdpr-pr3-anon-identity-design.md | ||
| 2026-04-19-gdpr-pr4-privacy-banner-design.md | ||
| 2026-04-19-gdpr-pr5-author-erasure-design.md | ||
| 2026-04-20-issue-7570-ueberdb2-drivers-design.md | ||
| 2026-04-25-auto-update-design.md | ||
| 2026-04-30-issue-7599-open-graph-metadata-design.md | ||