godotengine / godotengine/godot
NOTIFICATION_TRANSLATION_CHANGED doesn't get fired when translations are updated/added/removed
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
v4.6.2.stable.mono.arch_linux [001aa128b]
### System information
Godot v4.6.2.stable.mono (001aa128b) - Arch Linux #1 SMP PREEMPT_DYNAMIC Thu, 02 Apr 2026 23:33:01 +0000 - X11 display driver, Multi-window, 2 monitors - OpenGL 3 (Compatibility) - NVIDIA GeForce GTX 1080 (nvidia; 580.142) - Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 threads) - 31.20 GiB memory
### Issue description
I am writing a dialog system for my game. In the editor of this this system I show all possible translations of a string and I want this to automatically update when the `TranslationServer` gets updated.
The issue is that `NOTIFICATION_TRANSLATION_CHANGED` does not fired in the following situations:
- When a translation gets updated (no new strings added, but string content changed).
- When a translation/locale gets added or removed.
Right now I am using a plugin I wrote that digs deep into the editor internals to capture the relevant events and sends the notifcation to the editor's main screen. This works for my use case, but better would be being able to subscribe to relevant events in the `TranslationServer`. E.g. `TranslationServer.TranslationAdded`, `TranslationServer.TranslationRemoved`, `TranslationServer.TranslationChanged`, `TranslationServer.LocaleAdded`, `TranslationServer.LocaleRemoved`, etc. It being a plugin that digs into editor internals also means it's very likely to break when the engine updates.
If this is out of scope, I will file a proposal for being able to subscribe to `TranslationServer` events.
### Steps to reproduce
1. Create a node
2. Override `_notification`
3. Listen to `NOTIFICATION_TRANSLATION_CHANGED`
4. Add/remove a translation through the localization editor
5. No event is fired
--
1. Create a node
2. Override `_notification`
3. Listen to `NOTIFICATION_TRANSLATION_CHANGED`
4. Change a translation in a translation file
5. No event is fired
### Minimal reproduction project (MRP)
[translation-repro.zip](https://github.com/user-attachments/files/28117410/translation-repro.zip)
Contributor guide
Research direction
Start by running the linked translation-repro.zip project and confirm the missing NOTIFICATION_TRANSLATION_CHANGED events for updated, added, and removed translations. Trace the TranslationServer update path and the notification delivery path. Done means the notification is emitted for all three cases without relying on editor-internal hooks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- localization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100