# 更改站点默认语言环境后，自定义侧边栏部分的翻译会失效

**URL:** https://meta.discourse.org/t/custom-sidebar-section-translations-break-after-changing-the-sites-default-locale/408327
**Category:** Bug
**Tags:** sidebar, localization, fixed
**Created:** [2026年七月23日 05:30 UTC](https://meta.discourse.org/t/custom-sidebar-section-translations-break-after-changing-the-sites-default-locale/408327 "2026-07-23T05:30:33Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [2026年七月24日 16:35 UTC](https://meta.discourse.org/t/custom-sidebar-section-translations-break-after-changing-the-sites-default-locale/408327/2 "2026-07-24T16:35:56Z")

</div>

我快速尝试了一下这个

> <https://github.com/discourse/discourse/pull/42027>
>
> Previously, the custom sidebar section editor and the server assumed a section's… base title and link names were written in the site's current \*default\* locale, so changing the default locale scrambled which language each stored value mapped to and offered the wrong set of translation targets (\[meta\](https://meta.discourse.org/t/408327)).
> 
> This change keys the editor, the same-locale de-duplication and the collision cleanup off each record's own source locale — now surfaced as an editable "Section language" — and reorganises the translation UI around languages rather than fields.
> 
> \### Notable behaviour changes
> 
> \- Links keep their own source language, so saving a section no longer relabels a link authored in a different one.
> \- A localization colliding with its record's source is now destroyed instead of being left behind to shadow the base string. The collision is matched \*\*exactly\*\*, so a regional variant like \`en\_GB\` under an \`en\` source is preserved.
> \- Localization permissions are evaluated against the visibility being \*submitted\*, so making a section public and translating it in one save no longer 403s and loses the edit.
> \- \`create\` now enforces localization permissions, which it previously skipped entirely — an admin could write localizations onto a private section. A non-admin submitting localizations on create now gets a \`403\` instead of a silent drop, matching \`update\`.
> \- A submitted locale is validated at the request boundary: an unsupported or over-long value returns \`400\` rather than an unhandled \`500\`. A value already stored on the record is still accepted, so AI-detected locales outside the supported list stay editable.
> 
> \### UI
> 
> \<img width="821" height="646" alt="2026-07-29 @ 14 56 10" src="https://github.com/user-attachments/assets/19dad480-9f77-4f5b-b1a6-ed29689839a8" /\>
> \<img width="820" height="666" alt="2026-07-29 @ 14 56 16" src="https://github.com/user-attachments/assets/a9377282-d4b2-43af-91a6-700e10c50ce6" /\>
> 
> 
> Translations moved from inline per-field rows to a single "Manage translations" entry point opening a language-major panel — one group per language holding the section title and every link name. The old layout rendered \`1 + links × languages\` rows with an add button per field, which stopped being usable at three links and two languages.
> 
> A blank field means "not translated yet" rather than invalid, and clearing a saved translation now asks for confirmation before removing it.

---

_[View the full topic](https://meta.discourse.org/t/custom-sidebar-section-translations-break-after-changing-the-sites-default-locale/408327)._
