godotengine / godotengine/godot
Unable to use gds custom translation resources normally.
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
4.7 master
### System information
Godot v4.7.dev.mono (47415cf3a) - Arch Linux #1 SMP PREEMPT_DYNAMIC Fri, 06 Feb 2026 21:49:55 +0000 on Wayland - Wayland display driver, Multi-window, 1 monitor - OpenGL 3 (Compatibility) - Mesa Intel(R) UHD Graphics 630 (CFL GT2) - Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 threads) - 15.46 GiB memory
### Issue description
1. Adding custom translation resources for GDS to `locale/translations` will fail to load.
2. Using custom translation resources from GDS may cause the program to crash upon exit.
https://github.com/user-attachments/assets/59d56da2-d6d4-4fa2-b130-9f2b5e5987a5
gdb:
```
Thread 1 "godot.linuxbsd." received signal SIGSEGV, Segmentation fault.
___pthread_mutex_lock (mutex=0x1c0) at pthread_mutex_lock.c:74
74 unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
(gdb) bt
#0 ___pthread_mutex_lock (mutex=0x1c0) at pthread_mutex_lock.c:74
#1 0x000055555c547d35 in __gthread_mutex_lock (__mutex=0x1c0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:795
#2 __gthread_recursive_mutex_lock (__mutex=0x1c0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:857
#3 std::recursive_mutex::lock (this=0x1c0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/mutex:127
#4 0x0000555561c341b4 in std::unique_lock::lock (this=0x7fffffffc2e8) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_lock.h:144
#5 0x0000555561c34138 in std::unique_lock::unique_lock (this=0x7fffffffc2e8, __m=...)
at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_lock.h:75
#6 0x0000555561c340fd in MutexLock >::MutexLock (this=0x7fffffffc2e8, p_mutex=...) at ./core/os/mutex.h:77
#7 0x000055555ce785e3 in GDScriptInstance::~GDScriptInstance (this=0x555565f9cfa0) at ./modules/gdscript/gdscript.cpp:2014
#8 0x000055556231aa49 in memdelete (p_class=0x555565f9cfa0) at ./core/os/memory.h:152
#9 0x00005555622f4089 in Object::_predelete (this=0x555565f6f8c0) at ./core/object/object.cpp:286
#10 0x00005555622fff55 in predelete_handler (p_object=0x555565f6f8c0) at ./core/object/object.cpp:2479
#11 0x000055555c4f9ef5 in memdelete (p_class=0x555565f6f8c0) at ./core/os/memory.h:148
#12 0x000055555e633f48 in Ref::unref (this=0x5555660e2e40) at ./core/object/ref_counted.h:207
#13 0x000055555e633f05 in Ref::~Ref (this=0x5555660e2e40) at ./core/object/ref_counted.h:223
#14 0x000055555e5d9e69 in HashSet, HashMapHasherDefault, HashMapComparatorDefault, void> >::clear (this=0x55556310ef40) at ./core/templates/hash_set.h:251
#15 0x000055555e5d9b89 in HashSet, HashMapHasherDefault, HashMapComparatorDefault, void> >::~HashSet (this=0x55556310ef40) at ./core/templates/hash_set.h:493
#16 0x0000555561c1f3be in TranslationDomain::~TranslationDomain (this=0x55556310edf0) at ./core/string/translation_domain.h:37
#17 0x000055555c4f9f08 in memdelete (p_class=0x55556310edf0) at ./core/os/memory.h:152
#18 0x000055555c611678 in Ref::unref (this=0x555562e2a438) at ./core/object/ref_counted.h:207
#19 0x000055555c5fbd05 in Ref::~Ref (this=0x555562e2a438) at ./core/object/ref_counted.h:223
#20 0x000055556239704e in TranslationServer::~TranslationServer (this=0x555562e2a2f0) at ./core/string/translation_server.h:36
#21 0x000055555c5fb568 in memdelete (p_class=0x555562e2a2f0) at ./core/os/memory.h:152
#22 0x000055555c5f8b89 in Main::cleanup (p_force=false) at main/main.cpp:5222
#23 0x000055555c515d5a in main (argc=3, argv=0x7fffffffcc18) at platform/linuxbsd/godot_linuxbsd.cpp:125
```
### Steps to reproduce
As mentioned above.
### Minimal reproduction project (MRP)
[translation-test_2026-02-12_22-42-29.zip](https://github.com/user-attachments/files/25265275/translation-test_2026-02-12_22-42-29.zip)
Contributor guide
Assessment
This issue has not been assessed yet.